题目:
输入样例:
1 2 3
4 5 6
7 8 0
1 1
2 2
2 3
7
输出样例:
1
5
6
180
代码:
#include <stdio.h>
int main()
{
int arr[6][6]={0};//9宫格,我这里开大了
int x = 0,y = 0;//x是行,y列
int sum1 = 1+2+3+4+5+6+7+8+9;
for(int i = 1;i<=3;i++)
{
for(int j = 1;j<=3;j++)
{
scanf("%d",&arr[i][j]);
sum1-=arr[i][j];//计算0代表几
if(arr[i][j]==0)//记录0的x,y
{
x = i;
y = j;
}
}
}
arr[x][y]=sum1;//将零换成相应的数字
for(int i = 0;i<3;i++)
{
scanf("%d%d",&x,&y);//刮开的操作
printf("%d\n",arr[x][y]);
}
int operate = 0;//记录选择的方向
scanf("%d",&operate);
int sum[9]={0};//计算对应方向的和
sum[1] = arr[1][1]+arr[1][2]+arr[1][3];
sum[2] = arr[2][1]+arr[2][2]+arr[2][3];
sum[3] = arr[3][1]+arr[3][2]+arr[3][3];
sum[4] = arr[1][1]+arr[2][1]+arr[3][1];
sum[5] = arr[1][2]+arr[2][2]+arr[3][2];
sum[6] = arr[1][3]+arr[2][3]+arr[3][3];
sum[7] = arr[1][1]+arr[2][2]+arr[3][3];
sum[8] = arr[1][3]+arr[2][2]+arr[3][1];
int jb[25]={0};//兑换表格
jb[6]=10000,jb[7]=36,jb[8]=720,jb[9]=360,jb[10]=80;
jb[11]=252,jb[12]=108,jb[13]=72,jb[14]=54,jb[15]=180;
jb[16]=72,jb[17]=180,jb[18]=119,jb[19]=36,jb[20]=306;
jb[21]=1080,jb[22]=144,jb[23]=1800,jb[24]=3600;
printf("%d\n",jb[sum[operate]]);
return 0;
}
结果: