Sudoku codigo fuente c++

7 comments By godie On 13 de November de 2007
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*PROGRAM FOR SOLVING THE SUDOKU USING 'C'*/
#include<stdio .h>
#include<conio .h>
#include<iostream .h>
#include<stdlib .h>

int i,j,k,a[10][10],o,x[100],y[100];

void display();
int getnum();
void solve(int [],int [],int);
int check(int ,int );

void main()
{
    clrscr();
    printf("\n\nEnter the elements of SUDOKU in rowwise.\n[ Enter '0' if element is absent. ]");
    for(i=1;i&lt;=9;i++)
    for(j=1;j&lt;=9;j++)
    scanf("%d",&amp;a[i][j]);
    printf("\n\nEntered SUDOKU\n\n");
    display();
    printf("\nEnter any key for solution....\n");
    getch();
    o=getnum();
    solve(x,y,1);
}

int getnum()
{
    int c=0;
    for(i=1;i&lt;=9;i++)
    {
        for(j=1;j&lt;=9;j++)
        {
            if(a[i][j]==0)
            {

                x[c]=i;
                y[c]=j;
            }
        }
    }
    return(c);
}

void display()
{
    for(i=1;i&lt;=9;i++)
    {
        for(j=1;j&lt;=9;j++)
        {
            if(a[i][j]!=0)
            printf(" %d",a[i][j]);
            else
            printf(" ");
        }
        printf("\n\n");
    }
}

void solve(int p[100],int q[100],int n)
{
    for(k=1;k&lt;=9;k++)
    for(i=p[n];i&lt;=p[n];i++)
    for(j=q[n];j&lt;=q[n];j++)
    {
        a[i][j]=k;
        if(n&lt;0)
        solve(p,q,n++);
        int ch=check(1,0);
        if(ch!=0)
        {
            display();
            getch();
            exit(0);
        }
    }
}


int check(int n,int r)
{
        int f=0,cont=0;
        if(r==1)
        {
                for(k=1;k&lt;=9;k++)
                    {
                    for(i=n;i&lt;=n;i++)
                    for(j=1;j&lt;=9;j++)
                    {
                        if(k==a[i][j])
                        f++;
                    }
                if(f!=1)
                    return(0);
                else
                    cont++;
                f=0;
                }
            if(cont!=9)
                return(0);
            else if(n==9)
                check(1,0);
            else
                check(n++,1);
        }
        else
        {
            for(k=1;k&lt;=9;k++)
            {
                for(i=1;i&lt;=9;i++)
                for(j=n;j&lt;=n;j++)
                {
                if(k==a[i][j])
                f++;
                }
            if(f!=1)
                return(0);
            else
                cont++;
            f=0;
            }
        if(cont!=9)
            return(0);
        else if(n!=9)
            check(n++,1);
        }
}

Te puede interesar:

7 comments

  1. Popifresh
    March 17, 2008 at 3:41 am #

    Tio no es por dar por culo…..
    pero te faltan las librerias y te sobra un }, por todo lo demás está de p*** madre!!! Buen trabajo!

  2. Anonymous
    April 7, 2008 at 6:43 pm #

    y los includes????

  3. Anonymous
    July 15, 2008 at 6:43 am #

    bueno y cuales son los includes poh

  4. Anonymous
    October 29, 2008 at 7:19 pm #

    poes ya fueron arregladas las peticiones… ahora si copy & paste 0.0

  5. Fa
    January 29, 2011 at 11:54 am #

    me lanza un error de sintaxis en la parte del strong class

  6. Anonimo
    August 15, 2011 at 10:07 am #

    Alguien sabe cuales son las librerias???

  7. godie
    October 19, 2011 at 6:25 pm #

    Ya lo modifique y le puse los includes que deben de ser, saludos

Leave a Reply

Your email is never shared.

*