Problem z sprawdzeniem najwyższej liczby
Ostatnio zmodyfikowano 2015-07-21 23:29
kapelusznik Temat założony przez niniejszego użytkownika |
Problem z sprawdzeniem najwyższej liczby » 2015-07-21 22:59:01 Witam mógłby mi ktoś wytłumaczyć dlaczego zdarza się przy kompilacji tego programu: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int wypiszMaxAndMin( int iMax, int iMin ) { cout << iMax << "\t" << iMin << endl; }
int sprawdziMax( int losowe[], int & iMax ) { int i = 0; iMax = losowe[ i ]; do { if( losowe[ i ] > iMax ) iMax = losowe[ i ]; i++; } while( i < 5 ); }
int sprawdziMin( int losowe[], int & iMin ) { int i = 0; iMin = losowe[ i ]; do { if( losowe[ i ] < iMin ) iMin = losowe[ i ]; i++; } while( i < 5 ); }
void wypisz( int losowe[] ) { for( int i = 0; i < 5; i++ ) { cout << losowe[ i ] << endl; } cout << "\n" << endl; }
void wypiszOdwrotnie( int losowe[] ) { for( int i = 4; i >= 0; i-- ) { cout << losowe[ i ] << endl; } cout << "\n" << endl; }
int czyByla( int losowe[], int liczba, int wylosowane ) { if( wylosowane == 0 ) return false; int i = 0; do { if( losowe[ i ] == liczba ) return true; i++; } while( i < wylosowane ); return false; }
int wylosuj() { return( rand() % 10 ) + 1; }
int main() { int losowe[ 10 ]; int wylosowane = 0; srand( time( NULL ) ); do { int liczba = wylosuj(); if( czyByla( losowe, liczba, wylosowane ) == false ) { losowe[ wylosowane ] = liczba; wylosowane++; } } while( wylosowane < 5 ); wypisz( losowe ); wypiszOdwrotnie( losowe ); int iMax, iMin; iMax = sprawdziMax( losowe, iMax ); iMin = sprawdziMin( losowe, iMin ); wypiszMaxAndMin( iMax, iMin ); return 0; }
zdarza się, że wyskakują mi jakieś wielkie liczby podstawione za iMax albo iMini? Czy wychodzę tutaj poza tablicę? Czy problem leży gdzieś indziej? |
|
pekfos |
» 2015-07-21 23:07:45 iMax = sprawdziMax( losowe, iMax ); iMin = sprawdziMin( losowe, iMin );
|
Próbujesz modyfikować zmienną na 2 różne sposoby. Ostatnie jest przypisanie wyniku funkcji, a ty nic nie zwracasz pomimo tego, że musisz. |
|
kapelusznik Temat założony przez niniejszego użytkownika |
» 2015-07-21 23:29:38 Okej to właśnie to wywoływało błąd, teraz jest wszystko ok. Dzięki za pomoc. |
|
« 1 » |