C语言:解决九宫格问题
题目:1~9这九个数字分布在九宫格上,要求三条纵线、三条横线和两条对角线都相等。利用C语言解出所有答案。 #include int main() { unsigned char array[3][3] = {{1,1,1},{1,1}}; for(array[0][0] = 1; array[0][0] < 10; array[0][0]++) { for(array[0][1] = 1; array[0][1] < 10; array[0][1]++) { if(array[0][1] == array[0][0]) continue; for(array[0][2] = 1; array[0][2] < 10; array[0][2]++) { if(array[0][2] == array[0][0]) continue; if(array[0][2] == array[0][1]) continue; if((array[0][0] + array[0][1] + array[0][2]) != 15) continue; for(array[1][0] = 1; array[1][0] < 10; array[1][0]++) { if(array[1][0] == array[0][0]) 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]++) { if(array[1][1] == array[0][0]) 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]++) { if(array[1][2] == array[0][0]) 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) continue; for(array[2][0] = 1; array[2][0] < 10; array[2][0]++) { if(array[2][0] == array[0][0]) 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) continue; for(array[2][1] = 1; array[2][1] < 10; array[2][1]++) { if(array[2][1] == array[0][0]) 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) continue; for(array[2][2] = 1; array[2][2] < 10; array[2][2]++) { if(array[2][2] == array[0][0]) 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) continue; if((array[0][2] + array[1][2] + array[2][2]) != 15) continue; if((array[0][0] + array[1][1] + array[2][2]) != 15) continue; if((array[0][2] + array[1][1] + array[2][0]) != 15) continue; printf("%d %d %dn",array[0][0],array[0][1],array[0][2]); printf("%d %d %dn",array[1][0],array[1][1],array[1][2]); printf("%d %d %dn",array[2][0],array[2][1],array[2][2]); printf("n"); } } } } } } } } } getchar(); } 结果如下: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |