Witam, mam za zadanie stworzyć tablice dwuwymiarową, której wielkość można zmieniać w trakcie wykonywania programu. W dodatku mam znaleźć minimum i maksimum w zbiorze oraz ją posortować.
Najpierw zrobiłem tablicę statyczną:
#include <iostream>
using namespace std;
const int N=3;
const int M=3;
void mini( int tab[N][M] , int N , int M);
void maxi( int tab[N][M] , int N, int M);
void wczytaj (int tab [N][M], int N, int M);
void wypisz ( int tab[N][M], int N, int M);
int main()
{
int i,j;
int tab[N][M];
wczytaj(tab, N,M);
wypisz(tab,N,M);
mini(tab,N,M);
maxi(tab,N,M);
//system("PAUSE");
}
void wczytaj ( int tab[N][M], int N, int M){
for ( int i=0; i<N ; i++) {
for (int j=0 ; j<M ; j++){
cout<<i+1<<"wiersz, kolumna"<<j+1<<endl;
cin>>tab[i][j];
}
cout<<endl;
}
}
void wypisz ( int tab[N][M] , int N, int M){
for ( int i=0; i<N ; i++){
for (int j=0 ; j<M ; j++){
cout<<tab[i][j]<<" ";
}
cout<<endl;
}
}
void mini( int tab[N][M] , int N, int M) {
int i=0;
int j=0;
int min=tab[i][j];
for ( int i=0; i<N ; i++)
for (int j=0 ; j<M ; j++){
if ( min>tab[i][j]) min=tab[i][j];
}
cout<<"wartosc minimalna to: "<<min<<endl;
}
void maxi( int tab[N][M] , int N, int M) {
int i,j;
int max = tab[i][j];
for ( int i=0; i<N ; i++)
for (int j=0 ; j<M ; j++){
if ( max<tab[i][j]) max=tab[i][j];
}
cout<<"Wartosc maksymalna to "<< max<<endl;
}
Jednakże moim głównym problemem jest stworzenie i co gorsze umiejętne obchodzenie się z tablicą dwuwymiarową. Znalazłem coś takiego jeśli chodzi o tablice dwuwymiarowe.
int i,j;
cout<<"Ile ma byc wierszy?";
cin>>w;
tabi=new int *[w];
cout<<"Ile ma byc kolumn?";
cin>>k;
int x;
for(int i = 0; i < w; i++) {
tabi[i] = new int[w];
for ( int j=0; x < k ; j++){
tabi[i][x]=1;
cout<< tabi[i][x] <<" ";
}
cout<<endl;
}
Jednk nie umiem tego "wgrać" w funkcję.. jak wywołują funkcję to błędy przy kompilacji się pojawiają..