#include <stdio.h> /* 如下排列表示 A00 A01 A02 A10 A11 A12 A20 A21 A22 */ unsigned char array[3][3] = {{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}; int jiance(int n) { int i,j,m=0; for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { if (n==array[i][j]) { m++; return 0; } } } if (m==0) { return 1; } } int main() { 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(jiance(array[0][1])) continue; for(array[0][2] = 1; array[0][2] < 10; array[0][2]++) //A02从1依次循环到9 { if(jiance(array[0][2])) continue; for(array[1][0] = 1; array[1][0] < 10; array[1][0]++)//A10从1依次循环到9 { if(jiance(array[1][0])) continue; for(array[1][1] = 1; array[1][1] < 10; array[1][1]++)//A11从1依次循环到9 { if(jiance(array[1][1])) continue; for(array[1][2] = 1; array[1][2] < 10; array[1][2]++)//A12从1依次循环到9 { if(jiance(array[1][2])) 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(jiance(array[2][0])) 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(jiance(array[2][1])) 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(jiance(array[2][2])) 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(); }