[C++] Element maksymalny w tablicy dwuwymiarowej

michal1233
Użytkownik
Użytkownik
Posty: 19
Rejestracja: 17 kwie 2012, o 19:56
Płeć: Mężczyzna
Lokalizacja: BP
Podziękował: 3 razy

[C++] Element maksymalny w tablicy dwuwymiarowej

Post autor: michal1233 »

Hej.
Siedzę już dłuższy czas nad znalezieniem maksymalnego elementu w tablicy i nie mogę poprawnie napisać tej części kodu.

Kod: Zaznacz cały

#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;

void wypelnij(int tab[3][3])
{
     for(int i=0; i<3; i++)
     {
             for(int j=0; j<3; j++)
             {
                     cout<<"Podaj wartosc elementu ";
                     cin>>tab[i][j];
             }
     }
}
void wyswietl(int tab[3][3])
{
     for(int i=0; i<3; i++)
     {
             for(int j=0; j<3; j++)
             {
                     cout<<setw(3) <<tab[i][j];
             }
             cout<<endl;
     }
}
void zsumuj(int tab1[3][3], int tab2[3][3], int tab3[3][3])
{
     for(int i=0; i<3; i++)
     {
             for(int j=0; j<3; j++)
             {
                     tab3[i][j]=tab1[i][j]+tab2[i][j];
                     cout<<setw(4) <<tab3[i][j];
             }
     }
}

void max(int tab[0], int 9)
{
    int max=0;
    for(int i=0; i<9; i++)
        if(tab[0][i]>max)
            max=tab[i];

    return max;
} 

int main(int argc, char *argv[])
{
    int tab1[3][3], tab2[3][3], tab3[3][3];
    wypelnij(tab1);
    cout<<endl;
    wypelnij(tab2);
    wyswietl(tab1);
    cout<<endl;
    wyswietl(tab2);
    cout<<endl;
    zsumuj(tab1, tab2, tab3);
    cout<<endl;
    wyswietl(max);
    cout<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Awatar użytkownika
lackiluck1
Użytkownik
Użytkownik
Posty: 205
Rejestracja: 20 lis 2009, o 08:41
Płeć: Mężczyzna
Lokalizacja: Wola
Podziękował: 6 razy
Pomógł: 44 razy

[C++] Element maksymalny w tablicy dwuwymiarowej

Post autor: lackiluck1 »

Spróbuj tak:

Kod: Zaznacz cały

int max(int tab[3][3])
{
    int max=-9999;
    for(int i=0; i<3; i++)
     {
             for(int j=0; j<3; j++)
             {
                     if(tab[i][j]>max)
                             max=tab[i][j];
             }
     }
    return max;
}
i wyświetl to np tak:

Kod: Zaznacz cały

cout << max (tab1)<<endl;
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++] Element maksymalny w tablicy dwuwymiarowej

Post autor: Althorion »

Jakbym mógł zasugerować: int max = tab[0][0];, albo chociaż:

Kod: Zaznacz cały

#include limits.h
...
int max = INT_MIN;
Awatar użytkownika
ares41
Użytkownik
Użytkownik
Posty: 6499
Rejestracja: 19 sie 2010, o 08:07
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 142 razy
Pomógł: 922 razy

[C++] Element maksymalny w tablicy dwuwymiarowej

Post autor: ares41 »

lackiluck1, a nie lepiej zamiast

Kod: Zaznacz cały

int max=-9999;
dać

Kod: Zaznacz cały

 int max =tab[0][0];
,
wtedy unikniemy sytuacji, że wyrzuci nam jako wynik liczbę wpisaną przez nas w kod, a nienależącą do tablicy.

EDIT : Althorion , byłeś pierwszy
ODPOWIEDZ