Форум программистов, компьютерный форум CyberForum.ru

Судоку! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что за программа http://www.cyberforum.ru/cpp/thread82592.html
Есть видио уроки по C++, и там используется непонятно какая среда программирования. Подскажите если знаете как эта программа называется. И еще сразу вопрос: какая среда программирования самая удобная и простая в освоении?
C++ Генератор случайных чисел Вот написал программу, которая генерирует матрицу 9*9. В каждой строке - от 1 до 9, не повторяются В каждом стобце - то же самое. Однако программа работет не совсем так, как надо - числа с строках и столбцах повторяются. Подскажите, что неправильно? Вот код: http://www.cyberforum.ru/cpp/thread82548.html
C++ Найти первые m более чем 2-разрядных чисел-палиндромов
Всем привет. Пришёл на Ваш форум с просьбой...может ли тут кто-нить помочь мне в решении задачи?) Найти первые m более чем 2-разрядных чисел-палиндромов, то есть чисел, десятичная запись которых читается одинаково в прямом и обратном направлениях, например: 353, 234432. Если кто нить напишет решение, буду весьма и весьма признателен! Добавлено через 26 минут #include <iostream>...
C++ Инициализация вектора массивом
Можно ли как-то упростить эту запись? int fib={1,1,2}; int tri={1,3,6}; int luc={1,3,4}; int sqr={1,4,5}; int pel={1,2,5}; int pen={1,5,12}; vector<int> fibonacci(fib,fib+3), lucas(luc,luc+3), pell(pel,pel+3), triangular(tri,tri+3), square(sqr,sqr+3), pentagonal(pen,pen+3);
C++ Обработка двумерых массивов и суммирование рядов. http://www.cyberforum.ru/cpp/thread82265.html
Здравствуйте. Помогите написать небольшие программы на visual c++ по обработке массивов. 1)Разработать алгоритм решения задачи суммирования ряда. C помощью цикла с предусловием while. Предусмотреть ввод данных (аргумент и точность) с клавиатуры и вывод результата (сумма ряда) на экран. Сравнить полученное значение суммы с точным значением путем вычисления заданной функции...
C++ Компиляция С++ проекта для КПК Всем привет! Решил тут одну полезную программку скомпилить для покета. У меня стоит VS2003 и когда-то я еще на VB создавал проект Smart Device Application, и он работал. А для С++ не нашел похожего ничего. + еще программка то написана для консоли. Надо ли для КПК будет рисовать формочки? Подскажите пожалуйста куда копать! подробнее

Показать сообщение отдельно
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224

Судоку! - C++

05.01.2010, 16:32. Просмотров 4362. Ответов 3
Метки (Все метки)

Почти написал программу для генерирования судоку. Компилируется, работает, однако в 50% случаях генерирует только 3-8 строк и зависает. В остальных случаях генерирует полность, но в квадратах числа повторяются. Подскажите, где ошибка, а то я 100 раз код просмотрел и не заметил.

Вот код:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
#include <stdlib.h>
using namespace std;
 
int main()
{
    srand(time(0));
    const int size=9;
    int number;
    int sudoku[size][size];
    int i, j;
    int k, l;
    int chance;
    int i_from, j_from;
    
    bool repeated;
    
    for(i=0; i<size; i++)
    {
        for(j=0; j<size; j++)
        {
            
            chance=rand()%4;
            if(chance==0)
            {
                cout << "#" << " ";
                sudoku[i][j]=0;
                continue;
            }
            
            if(i<3) i_from=0;
            else if(i<6) i_from=3;
            else i_from=6;
            
            if(j<3) j_from=0;
            else if(j<6) j_from=3;
            else j_from=6;
            
            for(;;)
            {
                repeated=false;
                number=rand()%9+1;
                
                for(l=i_from; l<i; l++)
                    for(k=j_from; k<j; k++)
                        if(sudoku[l][k]==number)
                        {
                            repeated=true;
                            break;
                        }
                
                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;
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru