[Lekcja 21] Zadanie 1 - problem z wylosowanie liczb bez powtórzeń
Ostatnio zmodyfikowano 2012-02-02 22:12
314Mat Temat założony przez niniejszego użytkownika |
[Lekcja 21] Zadanie 1 - problem z wylosowanie liczb bez powtórzeń » 2012-02-02 21:37:29 Naprawde się starałem a tu licho :( program wypluwa dwie liczby jedna w formie daty : 20090820... itd a druga jest zawsze -1. Przeglądnąłem kod parę razy ale nic nie zauważyłem, bardzo proszę o pomoc. #include <iostream> #include <cstdlib> #include <ctime>
int losowanie() { return( rand() % 3 ); } bool czywylosowana( int wybrana[ 3 ], int wylosowane[ 2 ], int liczba ) { int n1 = 0; do { if( liczba == wylosowane[ n1 ] ); n1++; return true; } while( n1 != 2 ); return false; } int main() { srand( time( NULL ) ); int wybrana[ 3 ]; int wylosowane[ 2 ]; int n = 0; std::cout << "Wybierz trzy liczby" << std::endl; do { std::cout << "wybierz " << n + 1 << " liczbe :"; std::cin >> wybrana[ n ]; n++; } while( n != 3 ); n = 0; do { int liczba = wybrana[ losowanie() ]; if( czywylosowana( wybrana, wylosowane, liczba ) == false ); liczba = wylosowane[ n ]; n++; } while( n != 2 ); n = 0; std::cout << "Twoje wylosowane liczby :" << std::endl; do { std::cout << wylosowane[ n ] << std::endl; n++; } while( n != 2 ); return 0; }
mogę się założyć że jakiś głupi błąd popełniłem. |
|
RazzorFlame |
» 2012-02-02 21:55:57 if( czywylosowana( wybrana, wylosowane, liczba ) == false ); ?? Co ty tym robisz? |
|
314Mat Temat założony przez niniejszego użytkownika |
» 2012-02-02 22:12:09 Sprawdzam czy liczba się powtórzyła, jeśli tak to ponownie wywołuje losowanie jeśli nie to przypisuje wylosowaną liczbie pozycji z tablicy wylosowane. No przynajmniej to miała robić :).
Dobra już widzę że kodu dla if nie wziąłem w {} w funkcji czywylosowana() poprawiłem n1 aby była za return. dalej nie działa teraz jest w nieskończonej pętli dla funkcji czywylosowana() |
|
« 1 » |