📄 jgt.txt
字号:
#include<stdio.h>
int place(int*);
void main(void){/*九宫图算法*/
int a[9]={1,2,3,4,5,6,7,8,9};
int b[9]={0};/*表示数字的位置状态*/
int j,k,i;
for(k=0;k<=3;k++){/*对于所有比5小的数*/
b[1]=a[k];/*选一比5小的数放到第一行第二列*/
for(j=8;j>=5;j--){/*对于所有比5大的数*/
if(k!=(8-j)){/*不选择前面已选小数所对应的大数*/
b[0]=a[j];/*选一比5大的数放到第一行第一列*/
if(place(b)){/*若得到一解,则打印出*/
printf("\n 九宫图\n\n");
for(i=0;i<=8;i++){
printf(" %d ",b[i]);
if((i+1)%3==0){
printf("\n\n\n");
}
}
getch();
exit(0);
}
} /* 回溯到上一级*/
} /*回溯到根一级 */
}
}
int place(int*p){ /*计算出其他位置的数字并检测是否为所求的解*/
p[2]=15-p[0]-p[1];
p[4]=5;
p[6]=10-p[2];
p[3]=15-p[0]-p[6];
p[5]=10-p[3];
p[7]=10-p[1];
p[8]=10-p[0];
if(p[2]+p[5]+p[8]==p[6]+p[7]+p[8]){/*其他行和列已通过计算检测了,只有第三行,第三列未检测*/
return(1);
}
else{
return(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -