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

Lekcja 22 - przypisywanie wartości

Ostatnio zmodyfikowano 2015-11-09 22:01
Autor Wiadomość
maciaas87
Temat założony przez niniejszego użytkownika
Lekcja 22 - przypisywanie wartości
» 2015-11-09 21:16:34
witam,

poniżej kod:


C/C++
int minimalnej( int tab[], int ile ) {
    int minimum = tab[ 0 ];
   
    for( int i = 1; i < ile; i++ ) {
        if( tab[ i ] < minimum )
        {
            tab[ i ] = minimum;
        }
    }
   
    return minimum;
}


int najwiekszej( int tab[], int ile ) {
    int maksimum = tab[ 0 ];
   
    for( int i = 1; i < ile; i++ ) {
        if( tab[ i ] > maksimum )
        {
            tab[ i ] = maksimum;
        }
    }
   
    return maksimum;
}


1. W funkcji szukającej minimalnej liczby w tablicy przypisuje wartość "tab = minimum;" - wtedy faktycznie znajduję mi minimalna liczbę.
2. A jak w funkcji szukającej maksymalnej liczby przypisuje wartość "tab = maksimum" to znajduje mi jakaś liczbę, która nie jest ani największa ani najmniejsza...dopiero jak zapisze odwrotnie czyli "maksimum = tab" to znajduje mi największa liczbę...

W związku z tym nasuwa mi się pytanie - czy kolejność przypisywania wartości ma znaczenie w C++ ? Nie jest to rozwiązane "jak w matematyce", że lewa strona równa się prawej ? Jeśli ma znaczenie to dlaczego przy wartości minimalnej wyszukuje liczbę najmniejszą mimo "spapranej" kolejności przypisania wartości.
P-139878
michal11
» 2015-11-09 21:27:46
1. chyba pogubiłeś indeksy dla tablicy w swoim poście, stosuj formatowanie.
2. Oczywiście, że kolejność przypisywania ma znaczenie, zresztą sam to napisałeś
strona równa się prawej
 czyli to co jest po lewej stronie znaku równa się będzie miało wartość tego co jest po prawej.
C/C++
max = tab[ 0 ];
tab[ 0 ] = max;

Jak rozumiem rozważasz takie przypadki, w pierwszym do max zostanie przypisana pierwsza wartość z tablicy, tab[0] NIE jest modyfikowane. Z kolei w 2 przypadku do tab[0] jest przypisywana wartość max czyli nadpisujesz swoje dane wejściowe (zakładając, że przypadkowo max nie ma takiej samej wartości jak tab[0]), tab[0] JEST modyfikowane.
P-139880
Rashmistrz
» 2015-11-09 22:01:29
W aktualny sposób może Ci całą tablicę zapisać tą samą liczbą:
tab[ i ] = maksimum;
.
tab[ i ] = minimum;
.

Nie powinno być czasem tak, że do zmiennej tymczasowej
przypisujesz wartość elementu tablicy gdy jest mniejszy/większy? :
maksimum = tab[ i ];
.
minimum = tab[ i ];
.

P-139881
« 1 »
  Strona 1 z 1