21. Losowanie bez powtórzeń - zadanie
Ostatnio zmodyfikowano 2017-11-07 16:20
YooSy |
» 2017-11-07 16:06:16 |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-07 16:07:08 wewnątrz funkcji sprawdzenie bool sprawdzenie( int nowa_tablica[], int tablica[], int a, int licznik ) { if( licznik == 0 ) return true; int i = 0; do { if( nowa_tablica[ i ] == tablica[ a ] ) return false; i++; } while( i < licznik ); return true; } |
|
YooSy |
» 2017-11-07 16:09:37 Przecież tam było: if( licznik <= 0 ) return true; Taki kod wkleiłeś. I taki kod jest poprawniejszy. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-07 16:12:00 Później jeszcze kombinowałem i próbowałem różnych rzeczy a to przeoczyłem :)
W każdym razie dziękuję za pomoc :)
|
|
YooSy |
» 2017-11-07 16:15:31 Twój poprzedni kod wymaga dwóch niewielkich zmian, aby działał prawidłowo. Argumenty w wywołaniu funkcji sprawdzającej i w samej funkcji. Podpowiedz jest wcześniej (jako drugi argument przekaż wylosowaną liczbę zamiast wylosowanego indeksu i zmień sprawdzenie w funkcji). |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-07 16:20:07 teraz poprawnie? #include <conio.h> #include <ctime> #include <cstdlib> #include <iostream> using namespace std;
void wpisz( int tablica[] ) { int i = 0; do { cout << "Podaj " << i + 1 << " liczbe: "; cin >> tablica[ i ]; i++; } while( i < 10 ); }
bool sprawdzenie( int nowa_tablica[], int liczba, int licznik ) { if( licznik <= 0 ) return true; int i = 0; do { if( nowa_tablica[ i ] == liczba ) return false; i++; } while( i < licznik ); return true; }
int main() { srand( time( NULL ) ); int tablica[ 10 ]; int a; int licznik = 0; int nowa_tablica[ 8 ]; int liczba; wpisz( tablica ); cout << endl << "Teraz wylosuje 8 sposrod liczb ktore podales!" << endl; do { a = rand() % 10; liczba = tablica[ a ]; if( sprawdzenie( nowa_tablica, liczba, licznik ) == true ) { nowa_tablica[ licznik ] = liczba; licznik++; } } while( licznik < 8 ); int i = 0; cout << "Wylosowane liczby to: "; do { cout << nowa_tablica[ i ] << ", "; i++; } while( i < 8 ); _getch(); return 0; }
|
|
1 2 « 3 » |