[C++] Generator niepowtarzających się liczb losowych
Ostatnio zmodyfikowano 2016-01-09 22:01
Matexer Temat założony przez niniejszego użytkownika |
[C++] Generator niepowtarzających się liczb losowych » 2016-01-09 18:31:55 Witam, ostatnio postanowiłem stworzyć program, który wylosuje 10 niepowtarzających się liczb z zakresu od 1 do 10, a następnie je wypisze. Niestety gdzieś jest błąd powodujący zawieszenie programu, którego nie potrafię się dopatrzyć. Bardzo proszę o pomoc w odnalezieniu nieprawidłowości. #include <iostream> #include <ctime> #include <cstdlib>
using namespace std;
int main() { srand( time( NULL ) ); int T[ 10 ], i = - 1, j; while( i < 10 ) { i++; T[ i ] =( rand() % 10 ) + 1; j = 0; while( j <= i ) { if( i > 0 ) { if( T[ j ] != T[ i ] ) { j++; } else { i--; j = i + 3; } } else { j = i + 3; } } } i = 0; while( i < 10 ) { cout << T[ i ] << " "; i++; } } |
|
carlosmay |
» 2016-01-09 19:14:27 Mocno to pokręcone.
1. Zapisz wylosowaną w temp. 2. Sprawdź czy wartość temp jest w tablicy. 3. Jeśli nie zapisz w tablicy, jeśli tak wróć do losowania. |
|
Matexer Temat założony przez niniejszego użytkownika |
Ok, problem rozwiązany :) » 2016-01-09 22:01:26 #include <iostream> #include <ctime> #include <cstdlib>
using namespace std;
int main() { srand( time( NULL ) ); int T[ 10 ], i = - 1, j; while( i < 10 ) { i++; T[ i ] =( rand() % 10 ) + 1; j = 0; while( j < i ) { if( i > 0 ) { if( T[ j ] != T[ i ] ) { j++; } else { i--; j = 11; } } else { j = 11; } } } i = 0; while( i < 10 ) { cout << T[ i ] << " "; i++; } } |
|
« 1 » |