我们能发现,中间的数乘3就等于每行中的整数和、每一列中的整数和与每个对角线中的整数和。

k=a[2][2]*3;

现在已经知道a[1][1],a[1][2],a[2][2],可以求出a[1][3]、a[3][2]和a[3][3]。

a[1][3]=k-a[1][1]-a[1][2];//右上角 
a[3][2]=k-a[1][2]-a[2][2];//第三行第二个
a[3][3]=k-a[1][1]-a[2][2];//右下角

然后还需要求a[2][1],a[2][3],a[3][1],几乎没有任何难度了(总体也是非常的水)

a[2][3]=k-a[1][3]-a[3][3];//第二行第三个
a[2][1]=k-a[2][2]-a[2][3];//第二行第一个
a[3][1]=k-a[1][1]-a[2][1];//左下角 

最后输出,完成。

Code:

#include<bits/stdc++.h>

using namespace std;
int a[10][10],k;
int main()
{
    cin>>a[1][1]>>a[1][2]>>a[2][2];
    k=a[2][2]*3;
    a[1][3]=k-a[1][1]-a[1][2];
    a[3][3]=k-a[1][1]-a[2][2];
    a[2][3]=k-a[1][3]-a[3][3];
    a[2][1]=k-a[2][2]-a[2][3];
    a[3][1]=k-a[1][1]-a[2][1];
    a[3][2]=k-a[1][2]-a[2][2];
    for(int i=1;i<=3;i++)
    {
        for(int j=1;j<=3;j++)
        cout<<a[i][j]<<" ";
        cout<<"\n";//记得换行 
    }

    return 0;
}

切勿CTRL+C,创建和谐洛谷!