40分钟AC这道题。
一开始没有找到规律,后来找到了3个规律。
1.斜着看,每条斜线上是一样的
2.方阵的第一行第一列是一样的
3.第一行是1~5,第二行是1~4,…。就是右上角模型了,关于主对角线对称(我用的是这种方法)
找到规律后cout << a[j][k] << ” “;写错了。
不确定输入数据有多少个的时候用while(cin >> n,n!=0),还可以用while(cin >> n,n)。
#include<iostream>
using namespace std;
int a[100][100];
int main()
{
// freopen("xxx.in","r",stdin);
// freopen("yyy.out","w",stdout);
int n,sz;
while(cin >> n,n!=0)
{
for(int j=0;j<n;j++)
{
sz=1;
for(int k=j;k<n;k++)
{
a[j][k]=sz;
a[k][j]=sz;
sz++;
}
}
for(int j=0;j<n;j++)
{
for(int k=0;k<n;k++)
{
cout << a[j][k] << " ";
}
cout << '\n';
}
cout << '\n';
}
// fclose(stdin);
// fclose(stdout);
return 0;
}