Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Generator niepowtarzających się liczb losowych

Ostatnio zmodyfikowano 2016-01-09 22:01
Autor Wiadomość
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.
C/C++
#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++;
    }
}
P-143196
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.
P-143204
Matexer
Temat założony przez niniejszego użytkownika
Ok, problem rozwiązany :)
» 2016-01-09 22:01:26
C/C++
#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 ) { //tu był problem
            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++;
    }
}
P-143222
« 1 »
  Strona 1 z 1