#include <iostream>
using namespace std;
int a,b,c,d; //Naucz się nazywać zmienne poprawnie. Nie wiadomo co to jest. Powinieneś tutaj zrobić strukturę z odpowiednio nazwanymi polami i tablicą jednowymiarową rzutowaną do dwóch wymiarów.
unsigned int wypelnij() //unsigned int?! unsigned int?! Ratuje Cię tylko to, że IDE (albo komplikator nie jestem pewien) dodaje return 0 przy braku zwracanej wartości.Powinno być void. Tablica powinna tu iść do listy argumentów jako in-out.
{
cout << "Podaj wiersze i kolumny: ";
cin >> a >> b; //A gdzie czyszczenie bufora po pobraniu wartości? Tym bardziej, że zostaje nawet przy poprawnym podaniu danych zostaje pusty {ENTER}.
int tab[a][b];
for (int i=0; i<a; i++) //Zagnieżdżona pętla? Da się to zrobić w jednej!
{
for (int j=0; j<b; j++)
{
cout << "Podaj wartosc elementu ";
cin >> tab[i][j];
}
}
}
//Ta funkcja tworzy tablicę, wypełnia ją elementami i zapomina o niej. Całkowicie bezcelowe działanie.
int pokaz() //Dlaczego int? (Patrz opis nagłówka wyżej).
{
for (int i=0; i<a; i++) //Bezsensowne zagnieżdżanie. for( int i=0; i<a*b; cout<<tab[int(i/(b))][i%b]<<'['<<int(i/(b))<<']'<<'['<<i++%b<<']'<<endl );
{
for (int j=0; j<b; j++)
{
cout << tab[i][j] <<"["<<i<<"]"<<"["<<j<<"]\n" ; //Stringi? Dla jednego znaku? Taki zapis tworzy masę głupich i bezużytecznych danych.
//Co to jest tab[i][j]? Tab nie istnieje w tym zakresie. To się skompilowało?
}
//Jeśli chcesz podzielić to na wiersze to chyba tutaj powinieneś drukować nową linie.
}
}
int main()
{
wypelnij();
pokaz();
//Nie brakuje tutaj czegoś?
}
Kolejna sprawa. Powiedziałeś, że to mają być procedury. Procedury nie zwracają wartości. U Ciebie zwracają, choć niejawnie. Terminologia też leży krzyżem i błaga o uwagę.
Dalej twierdzisz, że chcesz, żeby ktoś Ci po prostu napisał jak to zrobić?
Siądź do kursu, naucz się podstaw i proś o pomoc, kiedy będziesz rozumiał co robisz i co chcesz zrobić. Inaczej się nie dogadamy.