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

Wyszukiwanie wartosc min i max w tabeli 2-wymiarowej.

Ostatnio zmodyfikowano 2013-01-17 21:31
Autor Wiadomość
Krzysssss
Temat założony przez niniejszego użytkownika
Wyszukiwanie wartosc min i max w tabeli 2-wymiarowej.
» 2013-01-17 20:40:42
Witam, nie rozumiem w tym programie dlaczego temp=0 i temp=d, probowalem ten program przerobic zeby pokazywal tylko max albo tlyko min, ale zaczely mi wychodzic kosmiczne liczby wina lezy wlasnie w zmiennej temp. moze mi ktos wyjsnic dlaczego przypisujemy jej 0?

edit: jesli zmienam wartosc temp=d; na jakos wartosc stala np 1 czy 1000 to niczego nie zmienia...nie rozumiem.

edit2: czy wartosc temp trzeba przypisac wartosc minimalna i maxymalna zakresu? to wszystko?
C/C++
/*
  Name: Minimalny i maksymalny element w tablicy dwuwymiarowej
  Copyright: GPL GNU
  Author: Piotr Wawrzyniak
  Date: 4-01-2007
  Description:
*/

#include <iostream>
#include <conio.h>
using namespace std;
int main( void )
{
    int tab[ 7 ][ 4 ];
    int x, y, a, temp, d;
   
    cout << "\n\n\tWYSZUKIWANIE LICZBY MINIMALNEJ I MAKSYMALNEJ W TABLICY DWUWYMIAROWEJ\n\n";
    cout << "\n\t1 - maksimum\n";
    cout << "\n\t2 - minimum\n";
    cout << "\n\tTwoj wybor: ";
    cin >> a;
    cout << "\n\n\tZakres liczb: ";
    cin >> d;
   
    if( a == 1 )
         temp = 0;
   
    if( a == 2 )
         temp = d;
   
    for( y = 0; y < 4; y++ )
    {
        for( x = 0; x < 7; x++ )
        {
            tab[ x ][ y ] = rand() % d;
            if( a == 1 )
            {
                if( temp < tab[ x ][ y ] )
                     temp = tab[ x ][ y ];
               
            }
            if( a == 2 )
            {
                if( temp > tab[ x ][ y ] )
                     temp = tab[ x ][ y ];
               
            }
        }
    }
    cout << "\n\n\t\tWYGENEROWANA TABLICA\n\n\n";
    for( y = 0; y < 4; y++ )
    {
        cout << "\t\t";
        for( x = 0; x < 7; x++ )
             cout << tab[ x ][ y ] << "\t ";
       
        cout << "\n";
    }
    if( a == 1 )
         cout << "\n\tMaxymalny element to: " << temp;
   
    if( a == 2 )
         cout << "\n\tMinimalny element to: " << temp;
   
    cin.ignore();
    getchar();
}
P-74241
unimator
» 2013-01-17 21:31:30
1. 0 zostaje przypisane ze względu na te linijki kodu:
C/C++
if( temp < tab[ x ][ y ] )
     temp = tab[ x ][ y ];

A właściwie to po to, by początkowo nie znajdowały się tam śmieci (chociaż teoretycznie nie powinno ich tam być, bo jest to zmienna tworzona statycznie). Gdyby przyjmowała ona domyślnie liczbę, która wykracza poza zakres tablicy, to taka liczba zostałaby w efekcie wyświetlona jako wartość max (choć nie byłoby jej w tablicy).

2. d, czyli dowolna liczba wprowadzona przez użytkownika jako maksymalny element tablicy. Taką też wartość trzeba ustawić zmiennej temp bo, analogicznie jak w przypadku 1., w zmiennej temp mogłyby się znajdować śmieci (chociaż domyślnie powinna ona przyjmować wartość zero co jednak tak czy inaczej musi zostać uwzględnione). Jeśli np. najmniejszą wartością w tablicy byłaby liczba 5, a temp przyjmowałoby wartość mniejszą w momencie inicjalizacji/deklaracji, to tak jak już pisałem, wartością minimalną byłby element nienależący do tablicy.
P-74244
« 1 »
  Strona 1 z 1