[Rozdział 21.) Zadanie nr. 1 - tajemnicze zachowanie kodu.
Ostatnio zmodyfikowano 2015-02-13 17:41
szneqz Temat założony przez niniejszego użytkownika |
[Rozdział 21.) Zadanie nr. 1 - tajemnicze zachowanie kodu. » 2015-02-13 17:41:47 Witam! Przechodząc do sedna rzeczy zastanawia mnie pewne zachowanie tego kodu: #include <iostream> #include <cstdlib> #include <ctime>
void losowanie( int tablicaliczb[], int najmn, int najw, int liczba ) { tablicaliczb[ liczba ] =( std::rand() %( najw - najmn + 1 ) ) + najmn; return; }
int sprawdzanie( int tablicaliczb[], int liczba ) { if( liczba == 0 ) { liczba++; return liczba; } else { if( tablicaliczb[ liczba ] == tablicaliczb[ liczba - 1 ] ) { return liczba; } else { liczba++; return liczba; } } } void wypisanie( int tablicaliczb[], int tablicawpisan[] ) { int cyfra = 0; do { std::cout << tablicawpisan[ tablicaliczb[ cyfra ] ] << ", "; cyfra++; } while( cyfra < 2 ); return; }
void dopisywanie( int tablicadopisywania[] ) { int cyfrunia = 0; std::cout << "Wpisz 3 rozne liczby:" << std::endl; do { std::cin >> tablicadopisywania[ cyfrunia ]; bool dobrze = std::cin.good(); std::cin.clear(); std::cin.sync(); if((( cyfrunia == 0 ) ||(( tablicadopisywania[ cyfrunia ] != tablicadopisywania[ cyfrunia - 1 ] ) &&( tablicadopisywania[ cyfrunia ] != tablicadopisywania[ cyfrunia - 2 ] ) ) ) &&( dobrze == 1 ) ) { cyfrunia++; } else { std::cout << "Liczba jest niepoprawna, prosze wpisac poprawna" << std::endl; } } while( cyfrunia < 3 ); return; }
int main() { srand( time( NULL ) ); int tablicalosowania[ 3 ]; int tablicawpisywania[ 3 ]; int liczba = 0; std::cout << "Zostana wylosowane 2 liczby z 3, ktore zostana wypisane" << std::endl; dopisywanie( tablicawpisywania ); do { losowanie( tablicalosowania, 1, 3, liczba ); liczba = sprawdzanie( tablicalosowania, liczba ); } while( liczba < 5 ); wypisanie( tablicalosowania, tablicawpisywania ); return 0; }
Za każdym razem, gdy wpiszę liczbę 65 i gdy zostanie ona wylosowana wypisywana jest ona jako liczba 3. Wszystkie inne liczby zachowują się normalnie. Czy mógłby ktoś mi powiedzieć o co chodzi ? Dziękuję i pozdrawiam. |
|
« 1 » |