Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
OVERPOWER8
19 / 19 / 2
Регистрация: 29.11.2009
Сообщений: 224

Генератор случайных чисел - C++

04.01.2010, 23:22. Просмотров 2389. Ответов 4
Метки (Все метки)

Вот написал программу, которая генерирует матрицу 9*9.
В каждой строке - от 1 до 9, не повторяются
В каждом стобце - то же самое.

Однако программа работет не совсем так, как надо - числа с строках и столбцах повторяются.

Подскажите, что неправильно?

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    srand(time(0));
    int sudoku[9][9];
    
    int number;
    int i, j, k, l;
    
    bool repeated;
        
    for(i=0; i<9; i++)
    {
        for(j=0; j<9; j++)
        {
            for(;;)
            {
                number=rand()%9+1;
                repeated=false;
                
                for(l=0; l<i; l++)
                {
                    if(number==sudoku[l][j])
                    {
                        repeated=true;
                        continue;
                    }
                }
                
                for(k=0; k<j; k++)
                {
                    if(number==sudoku[i][k])
                    {
                        repeated=true;
                        continue;
                    }
                }
                
                sudoku[i][j]=number;
                break;
            }
        }
    }
Вот, что выводит программа:

6 8 8 6 6 3 6 7 3
2 9 9 1 5 3 5 5 5
1 5 6 8 1 5 8 9 1
2 8 8 6 3 6 3 8 1
3 2 7 5 4 4 4 4 9
5 9 2 9 7 4 3 5 3
5 1 2 4 1 8 2 6 1
6 6 8 6 8 8 3 2 2
6 5 5 3 7 2 3 5 9

Пытаюсь сделать судоку на С++, на на этой части что-то заклинило...

Добавлено через 2 часа 35 минут
Немного переделал.

Теперь работает-то правильно, однако комп почему-то зависает...

вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    time_t kl;
    srand(kl);
    const int size=9;
    int number;
    int sudoku[size][size];
    int i, j;
    int k, l;
    
    bool repeated;
    
    for(i=0; i<size; i++)
    {
        for(j=0; j<size; j++)
        {
            for(;;)
            {
                repeated=false;
                number=rand()%9+1;
                
                for(l=0; l<i; l++)
                    if(sudoku[l][j]==number)
                    {
                        repeated=true;
                        break;
                    }
                for(k=0; k<j; k++)
                    if(sudoku[i][k]==number)
                    {
                        repeated=true;
                        break;
                    }
                
                if(repeated==true)
                    continue;
                    
                sudoku[i][j]=number;
                break;
            }
            cout << sudoku[i][j] << " ";
        }
        cout << endl;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2010, 23:22
Готовые ответы и решения для C++ Генератор случайных чисел:

Генератор случайных чисел
Еще ни разу не использовал rand(), знаю что перед ним нужно srand(time(NULL)),...

Генератор случайных чисел
Здравствуйте, для программы мне требуется генератор, который будет задавать...

Генератор случайных чисел
Здравствуйте! Кто-нибудь объясните пожалуйста. Вот есть функция rand(). Она...

Генератор случайных чисел
В общем, нужно составить программу, которая реализует алгоритм генерации...

Генератор случайных чисел
составить генератор случайных чисел, имеющий два члена - границы...

Генератор случайных чисел
Добрый день!У меня есть код #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

4
Генератор случайных чисел C++   Следующее сообщение темы 
Другие темы раздела
C++ написать словарик http://www.cyberforum.ru/cpp-beginners/thread82543.html
у меня есть словарик в текст. файле вида ааа ыыы вввввввв надо написать функцию которая удаляет\сортирует\выводит словарь,надо сначала весь текст поместить в массив вот мой набросок char* str;...
C++ Случайные числа Создать матрицу случайных чисел, если max элемент располагается левее минимального то тогда сложить элементы левой половинки матрицы. http://www.cyberforum.ru/cpp-beginners/thread82534.html
C++ Ряды
Помогите плиз с прогой,если не трудно её полный текст ∑(от n=1 до бесконечности) n/(3n-1)
Теория и Палиндром. C++
Теор вопрос:Чем отличается наследование от агрегации? Задача:Найти все меньшие, чем 100, натуральные числа, которые при возведении в квадрат дают палиндром. (Натуральное число называется...
C++ Найти первые m более чем 2-разрядных чисел-палиндромов http://www.cyberforum.ru/cpp-beginners/thread82516.html
Всем привет. Пришёл на Ваш форум с просьбой...может ли тут кто-нить помочь мне в решении задачи?) Найти первые m более чем 2-разрядных чисел-палиндромов, то есть чисел, десятичная запись которых...
C++ Ф-ции с рекурсиями Ребята в этой проге реверс первой строки делается без проблем, но почему-то в последующих строках ф-ция реверс работает не правильно. Уже голову поломал на этом деле(так прога элементарная), так что... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru