思路比较简单
#include<stdio.h>
int main()
{
int a[5][5],b[3],x,y,opt,sum=0,m,n;
int count[30]={10000,36,720,360,80,252,108,72,54,180,72,
180,119,36,306,1080,144,1800,3600};//用数组表示
for(int i=1;i<=3;i++)//赋值
{
for(int j=1;j<=3;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==0)
{
m=i;
n=j;
}
sum=sum+a[i][j];
}
}
a[m][n]=(1+9)*9/2-sum;//把零的哪个位置标记上去
for(int i=0;i<3;i++)
{
scanf("%d%d",&x,&y);
b[i]=a[x][y];
}
scanf("%d",&opt);
sum=0;
if((opt-1)/3==0)
{
for(int j=1;j<=3;j++)
{
sum=sum+a[opt][j];
}
}
else if((opt-1)/3==1)
{
for(int i=1;i<=3;i++)
{
sum=sum+a[i][opt-3];
}
}
else if(opt==7) sum=a[1][1]+a[2][2]+a[3][3];
else sum=a[1][3]+a[2][2]+a[3][1];
for(int i=0;i<3;i++)
{
printf("%d\n",b[i]);
}
printf("%d",count[sum-6]);
return 0;
}