[Rozdział 21] Złe działanie programu z zadania domowego
Ostatnio zmodyfikowano 2015-12-05 23:20
baddevil96 Temat założony przez niniejszego użytkownika |
[Rozdział 21] Złe działanie programu z zadania domowego » 2015-12-05 22:52:09 Programik działa cacy, lecz zamiast wypisać 2 losowych liczb z 3 podanych (bez powtorzen), wypisuje 2 razy tą samą liczbe. Program sklada sie praktycznie z samych funkcji i zaczelo mi sie mieszac, nie udało mi sie samemu znaleźć błędu, proszę o pomoc. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int wprowadz( int tab[], int ilosc ) { int i = 0; do { cin >> tab[ i ]; i++; } while( i < ilosc ); }
bool czyPowtarza( int tab[], int liczba, int i ) { if( i <= 0 ) return false; int warunek = 0; do { if( tab[ warunek ] == liczba ) { return true; } warunek++; } while( warunek < i ); if( warunek == i ) return false; }
int wypisz( int tab[], int ilosc ) { int i = 0; do { cout << tab[ i ] << endl; i++; } while( i < ilosc ); }
int losuj( int tab[], int ilosc, int i, int tablica2[] ) { int i2 = 0; int liczba; do { liczba = tab[( rand() % 2 ) + 0 ]; if( czyPowtarza( tab, liczba, i ) == false ) { tablica2[ i2 ] = liczba; i2++; } } while( i2 < ilosc ); }
int main() { srand( time( NULL ) ); int tablica[ 999 ]; int tablica2[ 999 ]; wprowadz( tablica, 3 ); int i = 0; do { losuj( tablica, 2, i, tablica2 ); i++; } while( i < 2 ); wypisz( tablica2, 2 ); }
edit Nie ma lepszego uczucia niz dojsc samemu do rozwiazania problemu, dzieki za pasywnosc :D #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int wprowadz( int tab[], int ilosc ) { int i = 0; do { cin >> tab[ i ]; i++; } while( i < ilosc ); }
bool czyPowtarza( int tab[], int liczba, int i ) { if( i <= 0 ) return false; int warunek = 0; do { if( tab[ warunek ] == liczba ) { return true; } warunek++; } while( warunek < i ); if( warunek == i ) return false; }
int wypisz( int tab[], int ilosc ) { int i = 0; do { cout << tab[ i ] << endl; i++; } while( i < ilosc ); }
int losuj( int tab[], int ilosc, int i, int tablica2[] ) { int i2 = 0; int liczba; do { liczba = tab[( rand() % 10 ) + 0 ]; if( czyPowtarza( tablica2, liczba, i2 ) == false ) { tablica2[ i2 ] = liczba; i2++; } } while( i2 < ilosc ); }
int main() { srand( time( NULL ) ); int tablica[ 999 ]; int tablica2[ 999 ]; wprowadz( tablica, 10 ); int i = 0; do { losuj( tablica, 8, i, tablica2 ); i++; } while( i < 8 ); wypisz( tablica2, 8 ); }
|
|
carlosmay |
» 2015-12-05 23:20:35 nw |
|
« 1 » |