Zadanie domowe "Pętla: for"
Ostatnio zmodyfikowano 2017-06-17 21:29
nizio Temat założony przez niniejszego użytkownika |
Zadanie domowe "Pętla: for" » 2017-06-17 17:39:15 Ostatnie zadanie domowe z rozdziału "Pętla: for". Napisałem kod, ale funkcje znajdowania najwyższej oraz najniższej liczby z tablicy nie działają poprawnie. Czy mógłbym prosić, żeby ktoś wytłumaczył mi jaki popełniłem błąd? #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
void randomNumbers( int t[], int range ) { for( int i = 0; i < range; i++ ) t[ i ] =( rand() % 20 ) + 10; }
void numbersUp( int t[], int range ) { for( int i = 0; i < range; i++ ) cout << t[ i ] << endl; }
void numberDown( int t[], int range ) { for( int i =( range - 1 ); i >= 0; i-- ) cout << t[ i ] << endl; }
int numberMax( int t[], int range ) { int max_n = t[ 0 ]; for( int i = 1; i < range; i++ ) { if( t[ i ] > t[ i - 1 ] ) max_n = t[ i ]; } return max_n; }
int numberMin( int t[], int range ) { int min_n = t[ 0 ]; for( int i = 1; i < range; i++ ) { if( t[ i ] < t[ i - 1 ] ) min_n = t[ i ]; } return min_n; }
void printIt( int high, int low ) { cout << "Najwieksza liczba to: " << high << endl; cout << "Najmniejsza lizba to: " << low << endl; }
int main() { srand( time( NULL ) ); int table[ 10 ]; randomNumbers( table, 10 ); numbersUp( table, 10 ); numberDown( table, 10 ); int max_n = numberMax( table, 10 ); int min_n = numberMin( table, 10 ); printIt( max_n, min_n ); return 0; }
|
|
bombatom69 |
» 2017-06-17 20:55:49 Aktualnie (w obu funkcjach) zmiennej MAX_N przypisywana jest wartość spod indeksu i gdy komórka spod indeksu i jest mniejsza/większa od poprzedniej - ale nie od wszystkich poprzednich. Zatem bez względu na to czy były w komórkach [0..i-2] wartości mniejsze/większe, nowa wartość zostanie przypisana. |
|
carlosmay |
» 2017-06-17 21:29:21 if( max_n < t[ i ] ) max_n = t[ i ];
|
|
« 1 » |