求C语言程序编程,将1-9 9个数字填入下表,使每横行、每竖列的数字之和

2024-11-22 15:41:52
推荐回答(4个)
回答(1):

#include 
int main(int argc,char *argv[]){
    char Room9[3][3]={0},i,j,k;
    for(i=0,j=k=1;k<10;k++,i--,j++){
        if(i==-1 && j<3)i+=3;
        else if(j==3 && i>-1)j-=3;
        else if(i==-1 && j==3 || Room9[i][j]!=0){
            i+=2;
            j-=1;
        }
        Room9[i][j]=k;
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++)
            printf("%3d",Room9[j][i]);
        printf("\n");
    }
    return 0;
}

回答(2):

#include
#include
#include
main()
{
#define n 3
int a[n][n]={0},i,sum=0,j;
i=0;j=n/2;
a[0][j]=++sum;
while(sum{i--;j++;
if(i<0&&j>=n)
{i=i+2;j--;}
else
{if(i<0)
i=n-1;
if(j>=n)
j=0;
}
if(a[i][j]==0)
a[i][j]=++sum;
else
{
i=i+2;
j--;
a[i][j]=++sum;
continue;}
}
for(i=0;i{for(j=0;jprintf("%5d",a[i][j]);
printf("\n");}
getch();
}

个性签名:3011

回答(3):

一道有意思的数学思考题

回答(4):

你这应该是数独题吧,用回溯算法啊