[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 »  |