[Lekcja 21] zadanie z lekcji
Ostatnio zmodyfikowano 2014-06-22 21:36
grzeso Temat założony przez niniejszego użytkownika |
[Lekcja 21] zadanie z lekcji » 2014-06-22 20:06:57 mój kod #include <iostream> #include <cstdlib> #include <ctime>
int losowanie() { return( std::rand() % 10 ) + 1; }
bool CzyByla( int tab[], int wylosowana, int IloscElementowTablicy ) { if( IloscElementowTablicy <= 0 ) return false; int i = 0; do { if( tab[ i ] == wylosowana ) return true; i++; } while( i < IloscElementowTablicy ); return false; }
int main() { srand( time( 0 ) ); int a; std::cout << "ile liczb losowaæ?" << std::endl; std::cin >> a; std::cout << std::endl; int tablica[ a ]; int NrWTab = 0; do { int wylosowanaLiczba = losowanie(); if( CzyByla( tablica, wylosowanaLiczba, NrWTab ) == false ); { tablica[ NrWTab ] = wylosowanaLiczba; NrWTab++; } } while( NrWTab < a ); NrWTab = 0; do { std::cout << tablica[ NrWTab ] << std::endl; NrWTab++; } while( NrWTab < a ); }
dlaczego losuje z powtórzeniem? założenie jest takie że wylosowana liczba ma sie nie powtarzać poza nazwami zmiennych to wszystko jest jak w kodzie z lekcji |
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-22 20:39:06 Rozwiązanie: if( CzyByla( tablica, wylosowanaLiczba, NrWTab ) == false ); bez ";" na końcu Tylko teraz pytanie brzmi dlaczego?już teraz będę do końca życia pamiętał żeby po warunku od if nie stawiać ; ale przecież coś tam się zrobiło. Czy można uznać że program zrobił tak: sprawdził warunek if, ale nie miał powiedziane co ma zrobić jak go sprawdzi wiec sprawdził "tak dla picu", zignorował klamerki: { tablica[ NrWTab ] = wylosowanaLiczba; NrWTab++; } i do tablicy wpisał to co się wylosowało? |
|
newboyy |
» 2014-06-22 20:56:07 Nie stawia się tam średnika , ponieważ po "IF"(etc.) musisz zdefiniować zadanie(no chyba że chcesz miec sam warunek , ale to nie ma sensu). Tak samo w pisaniu funkcji. Gdy definiujesz ciało funkcji( czyli to co ona ma robi ) to nie dajesz średnika, bo średnik oznaczałby zakończenie funkcji czyli jej deklaracje. Deklaracja funkcji: void Funkcja( int parametr ); Definicja funkcji: void Funkcja( int parametr ) { }
|
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-22 21:04:10 czyli ze średnikiem kończę "if" i dalej leci sobie jakby tego "if" nie było i robi co tam mu się karze? |
|
newboyy |
» 2014-06-22 21:24:44 tak |
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-22 21:36:27 Dzięki |
|
« 1 » |