C语言:九宫格

#include <stdio.h>
/*
如下排列表示 
A00   A01  A02
A10   A11  A12
A20   A21  A22
*/
int main()
{
    unsigned char array[3][3] = {{1, 1, 1}, {1, 1, 1}, {1, 1, 1}};
    
    for(array[0][0] = 1; array[0][0] < 10; array[0][0]++) //A00从1依次循环到9 
    {
        for(array[0][1] = 1; array[0][1] < 10; array[0][1]++) //A01从1依次循环到9 
        {
            if(array[0][1] == array[0][0])//如果A01 A00相同则结束本次循环,直接进入下次循环 
                continue;
            for(array[0][2] = 1; array[0][2] < 10; array[0][2]++) //A02从1依次循环到9 
            {    
                if(array[0][2] == array[0][0])//如果A02 A00相同则结束本次循环,直接进入下次循环 
                    continue;
                if(array[0][2] == array[0][1])//如果A02 A01相同则结束本次循环,直接进入下次循环 
                    continue;
                if((array[0][0] + array[0][1] + array[0][2]) != 15)//如果A00+A01+A02不等于15结束本次循环,直接进入下次循环 
                    continue;
 
                for(array[1][0] = 1; array[1][0] < 10; array[1][0]++)//A10从1依次循环到9 
                {
                    if(array[1][0] == array[0][0])//如果A10等于A00 A01  A02都结束本次循环,直接进入 
                        continue;
                    if(array[1][0] == array[0][1])
                        continue;                    
                    if(array[1][0] == array[0][2])
                        continue;
                    for(array[1][1] = 1; array[1][1] < 10; array[1][1]++)//A11从1依次循环到9 
                    {
                        if(array[1][1] == array[0][0])//如果A11等于A00 A01  A02 A10都结束本次循环,直接进入 
                            continue;
                        if(array[1][1] == array[0][1])
                            continue;                    
                        if(array[1][1] == array[0][2])
                            continue;
                        if(array[1][1] == array[1][0])
                            continue;
                        for(array[1][2] = 1; array[1][2] < 10; array[1][2]++)//A12从1依次循环到9 
                        {
                            if(array[1][2] == array[0][0])//如果A12等于A00 A01  A02 A10 A11都结束本次循环,直接进入 
                                continue;
                            if(array[1][2] == array[0][1])
                                continue;                    
                            if(array[1][2] == array[0][2])
                                continue;
                            if(array[1][2] == array[1][0])
                                continue;
                            if(array[1][2] == array[1][1])
                                continue;
                            if((array[1][0] + array[1][1] + array[1][2]) != 15)//如果A10+A11+A12不等于15结束本次循环,直接进入下次循环 
                                continue;
 
                            for(array[2][0] = 1; array[2][0] < 10; array[2][0]++)//A20从1依次循环到9 
                            {
                                if(array[2][0] == array[0][0])//如果A20等于A00 A01  A02 A10 A11 A12都结束本次循环,直接进入 
                                    continue;
                                if(array[2][0] == array[0][1])
                                    continue;                    
                                if(array[2][0] == array[0][2])
                                    continue;
                                if(array[2][0] == array[1][0])
                                    continue;
                                if(array[2][0] == array[1][1])
                                    continue;
                                if(array[2][0] == array[1][2])
                                    continue;
 
                                if((array[0][0] + array[1][0] + array[2][0]) != 15)//第一列如果A00+A10+A20不等于15结束本次循环,直接进入下次循环 
                                    continue;
 
                                for(array[2][1] = 1; array[2][1] < 10; array[2][1]++)//A21从1依次循环到9 
                                {
                                    if(array[2][1] == array[0][0])//如果A20等于A00 A01  A02 A10 A11 A12 A20都结束本次循环,直接进入 
                                        continue;
                                    if(array[2][1] == array[0][1])
                                        continue;                    
                                    if(array[2][1] == array[0][2])
                                        continue;
                                    if(array[2][1] == array[1][0])
                                        continue;
                                    if(array[2][1] == array[1][1])
                                        continue;
                                    if(array[2][1] == array[1][2])
                                        continue;
                                    if(array[2][1] == array[2][0])
                                        continue;
 
                                    if((array[0][1] + array[1][1] + array[2][1]) != 15) //第二列如果A01+A11+A21不等于15结束本次循环,直接进入下次循环 
                                        continue;
 
                                    for(array[2][2] = 1; array[2][2] < 10; array[2][2]++)//A22从1依次循环到9 
                                    {
                                        if(array[2][2] == array[0][0])//如果A21等于A00 A01  A02 A10 A11 A12 A20 A21都结束本次循环,直接进入 
                                            continue;
                                        if(array[2][2] == array[0][1])
                                            continue;                    
                                        if(array[2][2] == array[0][2])
                                            continue;
                                        if(array[2][2] == array[1][0])
                                            continue;
                                        if(array[2][2] == array[1][1])
                                            continue;
                                        if(array[2][2] == array[1][2])
                                            continue;
                                        if(array[2][2] == array[2][0])
                                            continue;                                
                                        if(array[2][2] == array[2][1])
                                            continue;    
 
                                        if((array[2][0] + array[2][1] + array[2][2]) != 15)//第三行如果A20+A21+A22不等于15结束本次循环,直接进入下次循环 
                                            continue;
 
                                        if((array[0][2] + array[1][2] + array[2][2]) != 15)//第三列如果A02+A12+A22不等于15结束本次循环,直接进入下次循环 
                                            continue;
 
                                        if((array[0][0] + array[1][1] + array[2][2]) != 15)//斜线如果A00+A11+A22不等于15结束本次循环,直接进入下次循环 
                                            continue;
                                        if((array[0][2] + array[1][1] + array[2][0]) != 15)//斜线如果A02+A11+A20不等于15结束本次循环,直接进入下次循环 
                                            continue;
 
                                        printf("%d %d %d\n", array[0][0], array[0][1],  array[0][2]);
                                        printf("%d %d %d\n", array[1][0], array[1][1],  array[1][2]);
                                        printf("%d %d %d\n", array[2][0], array[2][1],  array[2][2]);
 
                                        printf("\n");
                                    }                                    
                                }    
                            }
                        }                    
                    }    
                }            
            }
        }    
    }
    getchar();
}

 

posted @ 2021-07-01 16:59  myrj  阅读(270)  评论(0编辑  收藏  举报