Losowanie liczby bez powtórzeń proszę o pomoc
Ostatnio zmodyfikowano 2016-08-01 16:23
Luq |
» 2016-08-01 15:48:29 cin >> tab zamień na cin >> tab[ i ] Podobnie if( tab == iLiczba ) zmieniasz na if( tab[ i ] == iLiczba ) Funkcja losowanie zwróci Ci wartość 0 lub 1, a Twoja tablica z maina ma 3 elementy. Popraw tą 2 na 3 |
|
XxSPIDUxX |
» 2016-08-01 16:04:59 dzięki luq za podpowiedzi jednak z tym 'i" wyszło tak ze nie wiedziałem jak wstawić to w tą ramkę z kodem i się zrobiło jako znacznik kursywy i zniknęło. może wstawię ten kod od nowa: po za tym mam dwie tablice. ta do wczytania liczb ma 3. to przechowująca wylosowane ma 2. wciąż mi to while i < ile w funkcji czy_byla_wylosowana nie daje spokoju. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int podaj_liczby( int tab[], int ile ) { int i = 0; do { cout << "podaj liczbe " << i + 1 << " : "; cin >> tab[ i ]; i++; } while( i < ile ); }
bool czy_byla_wylosowana( int ile, int tab[], int iLiczba ) { if( ile <= 0 ) return false; int i = 0; do { if( tab[ i ] == iLiczba ) return true; i++; } while( i < ile ); return false; }
int losowanie() { return( rand() % 2 ); }
void wyswietl_liczby( int x, int ilosc, int tab[] ) { do { cout << "Wylosowana liczba to: " << tab[ x ] << endl; x++; } while( x < ilosc ); }
int main() { cout << "Witaj w tym pieknym programie. " << endl; srand( time( 0 ) ); int liczby[ 3 ], wylosowanych, liczby_wylosowane[ 2 ], x; wylosowanych = 0; x = 0; podaj_liczby( liczby, 3 ); do { int liczba; liczba = liczby[ losowanie() ]; if( czy_byla_wylosowana( wylosowanych, liczby_wylosowane, liczba ) == false ) { liczba = liczby_wylosowane[ x ]; x++; wylosowanych++; } } while( wylosowanych < 2 ); x = 0; wyswietl_liczby( x, 2, liczby_wylosowane ); return 0; }
|
|
Luq |
» 2016-08-01 16:13:58 liczba = liczby_wylosowane[ x ]; Nie w tą stronie przypisanie :) |
|
XxSPIDUxX |
» 2016-08-01 16:23:05 dzięki luq. jesteś wielki. następnym razem będę pamiętał żeby takie rzeczy sprawdzać zawsze :) |
|
1 « 2 » |