⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jgt.txt

📁 3*3九宫图源代码,仅供参考 如有错误 请指出
💻 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 + -