Lekcja 22 - przypisywanie wartości
Ostatnio zmodyfikowano 2015-11-09 22:01
maciaas87 Temat założony przez niniejszego użytkownika |
Lekcja 22 - przypisywanie wartości » 2015-11-09 21:16:34 witam, poniżej kod: 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. |
|
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ś czyli to co jest po lewej stronie znaku równa się będzie miało wartość tego co jest po prawej. 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. |
|
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 ]; . |
|
« 1 » |