Z trzech podanych liczb losowane są tylko dwie ostatnie
Ostatnio zmodyfikowano 2015-07-19 23:54
bulbulator Temat założony przez niniejszego użytkownika |
Z trzech podanych liczb losowane są tylko dwie ostatnie » 2015-07-19 20:35:00 Mam zrobić program w którym podaje trzy liczby, i losowane są dwie bez powtórzeń. Poszukałem rozwiązania w internecie bo trochę nie wiedziałem jak sie za to zabrać ale i tak jest coś nie tak bo losują się tylko dwie ostatnie liczby z trzech, nigdy ta pierwsza #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
bool czyBylaWylosowana( int iliczba, int tab[], int ile ) { if( ile <= 0 ) return false; int i = 0; do { if( tab[ i ] == iliczba ) return true; i++; } while( i < ile ); return false; } int wylosuj() { return( rand() % 2 ) + 1; }
int main() { srand( time( NULL ) ); int liczby[ 3 ]; int wylosowane[ 2 ]; int wylosowanych = 0; cout << "podaj 3 liczby: " << endl; int i = 0; do { cin >> liczby[ i ]; i++; } while( i < 3 ); do { int liczba = wylosuj(); if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 2 ); cout << endl << "wylosowalem 2 liczby z twoich: "; int a = 0; do { cout << liczby[ wylosowane[ a ] ] << ", "; a++; } while( a < 2 ); return 0; }
|
|
BadBullPL |
» 2015-07-19 21:10:16 Błąd jest w funkcji wylosuj. |
|
carlosmay |
» 2015-07-19 21:13:41 Losujesz z przedziału dwóch liczb, a tablica ma trzy liczby. |
|
bulbulator Temat założony przez niniejszego użytkownika |
» 2015-07-19 23:54:40 O rany!rzeczywiście, dzięki. Znowu zapomniałem że zbiór zaczyna się od 0 :) |
|
« 1 » |