McAffey |
» 2011-04-03 15:05:44 @Elano92 Pomyśl, jak dopiszesz 0 to będzie porównywał czy liczba jest <= od 0 i zawsze na końcu pokaże Ci najmniejszą zero. Przy pierwszym porównaniu nie masz zadeklarowanej dla min żadnej wartości, masz szczęście że program się nie wysypuje. Przed porównaniami (które masz na "końcu" pętli) powinieneś dopisać if( a == 1 ) min = losowa[ 1000 ]; . edit: Kolega mnie uprzedził, tak też można ;) |
|
Elano92 Temat założony przez niniejszego użytkownika |
» 2011-04-03 15:12:40 nie rozumiem przepisz ten program z tą wzmianką , bo do końca nie wiem o co ci chodzi |
|
McAffey |
» 2011-04-03 15:18:13 ... #include <conio.h> #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( time( NULL ) ); int a, losowa[ 1000 ], min, max = 0, i; for( a = 1; a <= 6; a++ ) { losowa[ 1000 ] = rand() % 9 + 1; cout << a << " wylosowana: " << losowa[ 1000 ] << endl; if( a == 1 ) min = losowa[ 1000 ]; if( losowa[ 1000 ] >= max ) max = losowa[ 1000 ]; if( losowa[ 1000 ] <= min ) min = losowa[ 1000 ]; } cout << "\n" << " Najwieksza " << max << endl; cout << "\n" << " Najmniejsza " << min << endl; getch(); return 0; }
|
|
Elano92 Temat założony przez niniejszego użytkownika |
» 2011-04-03 15:33:58 dobra już kumam tylko powiedz co mi ta linijka daje ? |
|
ison |
» 2011-04-03 15:37:26 szyx_yankex #include <iostream> int Max( int * Tab, int size ) { int Max = Tab[ 0 ]; for( int a = 0; a < size; ++a ) for( int b = 0; b < size; ++b ) if( Max < Tab[ b ] ) Max = Tab[ b ]; return Max; }
int main() { int Tab[] = { 1, 2, 3, 4, 233, 44 }, size = sizeof( Tab ) / 4; std::cout << Max( Tab, size ); }
|
przecież ten pierwszy for do niczego nie jest potrzebny... int Max( int * Tab, int size ) { int Max = Tab[ 0 ]; for( int a = 0; a < size * size; ++a ) if( Max < Tab[ a % size ] ) Max = Tab[ a % size ]; return Max; }
|
dlaczego lecisz forem do size*size i potem modulujesz a przez size? :D nie można tak: for( int a = 0; i < size; ++a ) if( Max < Tab[ a ] ) Max = Tab[ a ];
? McAffey Przy pierwszym porównaniu nie masz zadeklarowanej dla min żadnej wartości, masz szczęście że program się nie wysypuje.
|
wysypać się nie wysypie, co najwyżej da zły wynik |
|
McAffey |
» 2011-04-03 15:39:57 @Elano92 Bez tej linijki gdy masz pierwsze porównanie if( losowa[ 1000 ] <= min ) to zmienna min nie ma przypisanej żadnej wartości i masz szczęście, że program przez to się nie wykrzacza. A dzięki linijce którą dodałem, gdy jest pierwszy obieg pętli (czyli właśnie zmienna min nie ma jeszcze przypisanej żadnej wartości) to przypisujesz zmiennej min wartość pierwszej wylosowanej liczby przyjmując ją jako początkowy "wyznacznik" najmniejszej liczby. |
|
ison |
» 2011-04-03 15:41:43 to zmienna min nie ma przypisanej żadnej wartości i masz szczęście, że program przez to się nie wykrzacza.
|
jakąś ma przypisaną, tylko nie wiadomo jaką, program się nie wykrzaczy |
|
McAffey |
» 2011-04-03 15:42:57 No dobrze, program się nie wykrzaczy ale może dawać zły wynik. |
|
1 2 « 3 » 4 |