Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wskazywanie pozycji elementu o max wartości w tablicy dwuwymiarowej.

Ostatnio zmodyfikowano 2019-11-06 21:15
Autor Wiadomość
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.

C/C++
#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;
}
P-175492
pekfos
» 2019-11-06 17:47:20
C/C++
max1 = tab[ i ][ j ];
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.
P-175493
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.
C/C++
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;
}
P-175494
pekfos
» 2019-11-06 21:15:06
Ale dlaczego próbujesz to zrobić inkrementując zmienną? Zapisanie zmiennej w innej to zadanie dla przypisania.
P-175495
« 1 »
  Strona 1 z 1