Wskazywanie pozycji elementu o max wartości w tablicy dwuwymiarowej.
Ostatnio zmodyfikowano 2019-11-06 21:15
czerwiec5 Temat założony przez niniejszego użytkownika |
Wskazywanie pozycji elementu o max wartości w tablicy dwuwymiarowej. » 2019-11-06 14:53:07 Witam, napisałem program, który wypełnia tablice dwuwymiarową o podanym przez użytkownika wymiarze liczbami losowymi z zakresu od 0 do 9. Następnie wyszukiwana jest wartość największa w tablicy. Dodatkowo chciałbym wskazać w którym wierszu i kolumnie wartość ta się znajduje. Próbowałem wstawiać liczniki w różnych miejscach kodu ale zawsze wychodzi jakaś bzdura. Jak stworzyć taki licznik żeby działał prawidłowo? Nie mam już pomysłu. #include <iostream> #include <conio.h> #include <cstdlib> #include <ctime>
using namespace std;
int main() { srand(( int ) time( NULL ) ); int n, m, i, j, max1, liczw, liczk; int tab[ 10 ][ 10 ]; cout << "Podaj liczbe wierszy tablicy (max 10): "; cin >> n; cout << endl; cout << "Podaj liczbe kolumn tablicy (max 10): "; cin >> m; cout << endl; for( i = 0; i < n; i++ ) for( j = 0; j < m; j++ ) tab[ i ][ j ] = rand() % 10; for( i = 0; i < n; i++ ) { for( j = 0; j < m; j++ ) cout << tab[ i ][ j ] << " "; cout << endl; } max1 = tab[ 0 ][ 0 ]; liczw = 0; liczk = 0; for( i = 0; i < n; i++ ) { for( j = 0; j < m; j++ ) { if( max1 < tab[ i ][ j ] ) max1 = tab[ i ][ j ]; } } cout << "Maximum: " << max1; cout << "Wiersz: " << liczw << ". Kolumna: " << liczk; _getch(); return 0; }
|
|
pekfos |
» 2019-11-06 17:47:20 Zapisz i, j z tego momentu? Tak samo jak tam zapisujesz największą wartość..? Ciężko tu się odnieść do problemu, bo po tych wszystkich próbach, które rzekomo wykonałeś, w kodzie nie zostało nawet śladu. Najprawdopodobniej próbowałeś czegoś prawie poprawnego, pojawił się jakiś bardziej konkretny problem, ale się wycofałeś do punktu w którym nie ma nic i zadajesz ogólne pytanie. |
|
czerwiec5 Temat założony przez niniejszego użytkownika |
» 2019-11-06 20:57:57 Próbowałem zapisać i,j właśnie z momentu max1=tab [j], ale ponieważ cały czas leci pętla to na końcu "i' i "j" przyjmują wartości rozmiaru tablicy:( Spróbowałem jeszcze wprowadzić dodatkową zmienną(na razie tylko dla kolumn), która przyjmuje wartość zliczenia kolumn w każdej pętli(fragment kodu poniżej) ale też źle liczy.
max1 = tab[ 0 ][ 0 ]; liczw = 0; liczk = 0;
for( i = 0; i < n; i++ ) { kolumna = 0; for( j = 0; j < m; j++ ) { if( max1 <= tab[ i ][ j ] ) { max1 = tab[ i ][ j ]; kolumna++; } } if( kolumna > liczk ) liczk = kolumna; }
cout << "Maximum: " << max1; cout << "Wiersz: " << liczw << ". Kolumna: " << liczk;
_getch(); return 0; }
|
|
pekfos |
» 2019-11-06 21:15:06 Ale dlaczego próbujesz to zrobić inkrementując zmienną? Zapisanie zmiennej w innej to zadanie dla przypisania. |
|
« 1 » |