Program nie losuje bez powtórzeń.
Ostatnio zmodyfikowano 2014-12-07 16:19
TheNasster Temat założony przez niniejszego użytkownika |
Program nie losuje bez powtórzeń. » 2014-12-07 15:24:46 Ma ktoś jakiś pomysł jak to naprawić? #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int los() { return( rand() % 10 ) + 1; } bool spr( int tabela[], int ile, int licz ) { if( ile <= 0 ) return false; int i = 0; do { if( tabela[ i ] == licz ); return true; i++; } while( i < ile ); return false; } int main() { srand( time( 0 ) ); int tab[ 5 ]; int i = 0; do { int liczba = los(); if( spr( tab, i, liczba ) == false ); { tab[ i ] = liczba; i++; } } while( i < 5 ); i = 0; do { cout << tab[ i ] << "\n"; i++; } while( i < 5 ); return 0; }
|
|
TheNasster Temat założony przez niniejszego użytkownika |
» 2014-12-07 16:06:59 W funkcji int main() w linijce if( spr( tab, i, liczba ) == false ); wystarczy usunąć ; |
|
Rashmistrz |
» 2014-12-07 16:15:01 Źle dobrałeś zwracane wartości w funkcji "spr", wszystkie na odwrót są... :F PS. if( wyrazenieLogiczne == true )...
if( wyrazenieLogiczne )... PS2. Średnik: if( tabela[ i ] == licz ); |
|
darko202 |
» 2014-12-07 16:19:51 podejrzana wydaje mi się funkcja spr bo zwracasz true tylko jak liczba zgadza się z wcześniej wylosowaną 1. int i = 0; do { if( tabela[ i ] == licz ); return true; i++; } while( i < ile );
2. nieznane jest mi działanie if( tabela[ i ] == licz ); // podejrzany niepotrzebny ";" 3. oraz w main if( spr( tab, i, liczba ) == false );
{ tab[ i ] = liczba; i++; }
iteracja tylko wtedy gdy zachodzi spr( tab, i, liczba ) == false 4. tu tez dziwny ";" if( spr( tab, i, liczba ) == false ); nie mogę teraz sprawdzić Twojego kodu w kompilatorze więc mogę się mylić :) |
|
« 1 » |