Losowanie bez powtorzen - nie moge znalezc bledu
Ostatnio zmodyfikowano 2015-10-12 16:21
danielpadewski Temat założony przez niniejszego użytkownika |
Losowanie bez powtorzen - nie moge znalezc bledu » 2015-10-11 12:59:33 #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { srand( time( 0 ) ); int liczba[ 5 ], los; int i, c; bool a = false; for( i = 0; i < 5; i++ ) { do { los =( rand() % 6 ) + 5; for( c = 0; c <= i; c++ ) { if( !los == liczba[ c ] ) { a = false; } } } while( a == true ); liczba[ i ] = los; cout << liczba[ i ] << endl; } return 0; }
napisalem ten program bez oparcia o funkcje ale nie moge pojac dlaczego nie losuje sie bez powtorzen , program moim zdaniem powiniem dzialac tak ze 1. losuje liczbe 2. porownuje ta liczbe do elementow tablicy (liczba elemntow = i) 3. jesli liczba padla to zwraca wartosc false dzieki czeu petla sie powtarza i liczba znowu sie losuje 4. jesli liczba nie padla to przypisuje ta liczbe do elementu tablicy i wypisuje liczbe 5. losuje kolejne liczby[/i][/i] |
|
carlosmay |
» 2015-10-11 13:17:04 "Coś nie działa" - co to jest za tytuł? Jaki problem on opisuje? nie moge pojac dlaczego nie losuje sie bez powtorzen |
coś jest źle napisane w kodzie. Popraw post: - kod sformatoway (znaczniki) - temat wskazujący na problem. Ignorujesz zasady tego forum (posty idą do bezużytecznych). Pod każdym założonym tematem masz informację o zakładaniu tematów. |
|
danielpadewski Temat założony przez niniejszego użytkownika |
odp » 2015-10-11 13:17:52 jak mam sformatowac kod ? karwasz twarz jestem glupi i nie umiem |
|
carlosmay |
» 2015-10-11 13:19:06 |
|
carlosmay |
» 2015-10-11 13:36:37 if( !los == liczba[ c ] ) |
tego nie rozumiem. Program sprawdza (jak poprawisz warunek) czy liczba już jest w tablicy, ale niezależnie od wyniku sprawdzania zapisuje los do tablicy, a powinien wrócić do ponownego losowania. |
|
danielpadewski Temat założony przez niniejszego użytkownika |
» 2015-10-11 13:53:50 program sprawdza if( !los == liczba[ c ] )
jesli wylosowana liczba jest różna od kazdego z elementów tablicy to zwraca wartosc false dzieki czemu petla sie przerywa i los zapisuje sie do tablicy |
|
carlosmay |
» 2015-10-11 14:10:37 if( !los == liczba[ c ] ) |
ten warunek jest nieprawdziwy dla każdej liczby innej niż zero, lub w przypadku gdy 'los = 0' będzie prawdziwy dla 'liczba[c] = 1'. |
|
danielpadewski Temat założony przez niniejszego użytkownika |
» 2015-10-11 15:21:56 wylosuje np liczbe 3, sprawdza czy 3 jest różna od wszystkich elementów
nie rozumiem jak liczba[c] moze przyjmowac wartosc 0 , sory bardzo za to , miesza mi sie to troche juz , wedlug mnie to powinno dzialac prawidlowo (dziala jak zaprogramowalem) no ale nie potrafie znalezc "tej linijki" gdzie jest popełniony błąd |
|
« 1 » 2 |