Giero97 Temat założony przez niniejszego użytkownika |
Wyszukiwanie minium w tablicy i przypisywanie do drugiej » 2018-03-11 12:53:51 Witam mam problem z pewnym zadaniem a mianowicie: Napisz funkcję void MinimaWierszami( int t[][ 15 ], int w, int k, int m[] ); która w kolejnych składowych wektora mzapisze minimalne wartości z odpowiednich wierszy macierzy t. Macierz t ma w wierszy i k kolumn (0<=k<=15). Przetestuj funkcję. No i napisałem funkcję i jak dochodzi do wywołania to jest błąd w kompilacji przy tablicy g[2]. #include <iostream> using namespace std; void wczytajMacierz( int a[][ 5 ], int n, int m ) { for( int i = 0; i < n; i++ ) { for( int j = 0; j < m; j++ ) { cout << "Podaj element " << i << j << endl; cin >> a[ i ][ j ]; } } } void MinimaWierszami( int t[][ 15 ], int w, int k, int m[] ) { for( int i = 0; i < w; i++ ) { int minimum = t[ i ][ 0 ]; for( int j = 0; j < k; j++ ) { if( t[ i ][ j ] < minimum ); m[ i ] = minimum; } } } int main() { int a[ 2 ][ 5 ]; wczytajMacierz( a, 2, 5 ); int g[ 2 ]; MinimaWierszami( a, 2, 5, g ); for( int i = 0; i < 2; i++ ) cout << g[ i ] << " "; }[ / i ]
|
|
pekfos |
» 2018-03-11 13:19:26 Próbujesz przekazać tablicę o złym rozmiarze.
|
|
Giero97 Temat założony przez niniejszego użytkownika |
» 2018-03-11 13:27:34 Ok udało mi się to naprawić dzięki za podpowiedź :) rzeczywiście źle wywoływałem funkcję. Jest jeszcze jeden problem po wpisaniu elementów do tablicy i wyświetleniu tablicy g[2] (wprowadzając np. 2 3 4 5 6 1 2 3 1 5) wyświetla mi elementy 1 5, a przy sumowaniu elementów tablicy wyświetla mi wynik o jeden większy. #include <iostream> using namespace std; void wczytajMacierz( int a[][ 5 ], int n, int m ) { for( int i = 0; i < n; i++ ) { for( int j = 0; j < m; j++ ) { cout << "Podaj element " << i << j << endl; cin >> a[ i ][ j ]; } } } void MinimaWierszami( int t[][ 5 ], int w, int k, int m[] ) { for( int i = 0; i < w; i++ ) { int minimum = t[ i ][ 0 ]; for( int j = 0; j < k; j++ ) { if( t[ i ][ j ] < minimum ); m[ i ] = minimum; } } } void sumaElementow( int tab[], int l ) { int suma = 0; for( int i = 0; i <= l; i++ ) { suma = suma + tab[ i ]; } cout << suma; }
int main() { int a[ 2 ][ 5 ]; wczytajMacierz( a, 2, 5 ); int g[ 2 ]; MinimaWierszami( a, 2, 15, g ); for( int i = 0; i < 2; i++ ) { cout << g[ i ] << " "; } cout << endl; sumaElementow( g, 2 ); } |
|
pekfos |
» 2018-03-11 13:51:38 int minimum = t[ i ][ 0 ]; for( int j = 0; j < k; j++ ) { if( t[ i ][ j ] < minimum ); m[ i ] = minimum; } |
Ten kod jest błędny. |
|
Giero97 Temat założony przez niniejszego użytkownika |
» 2018-03-11 14:14:46 Problem z sumą rozwiązany zły warunek for( int i = 0; i <= l; i++ ) for( int i = 0; i < l; i++ ). Rozumiem że błędem w funkcji minimum był średnik po if( tab[ i ][ j ] ); ale nadal wpisuje złe wartości. |
|
pekfos |
» 2018-03-11 14:17:39 Rozumiem że błędem w funkcji minimum był średnik po
if( tab[ i ][ j ] ); ale nadal wpisuje złe wartości. |
Zobacz co się w tym fragmencie dzieje ze zmienną minimum. |
|
Giero97 Temat założony przez niniejszego użytkownika |
» 2018-03-11 14:36:35 Program działa już w całości bardzo dziękuję za pomoc. |
|
« 1 » |