#include<iostream>
using namespace std;
int main()
{
const int Max = 100;
int a[Max];
//给数组输入赋值
int i = 0;
int num = 1;//矩阵的数量
for (; i < Max;num++,i++)
{
cin >> a[i];//每个矩阵的规模
if (a[i] == 0)
{
break;
}
}
//输入矩阵
//定义矩阵
int array[Max][Max];
for (int n = 0; n <=num;n++)
{
i = a[n];
//为第一行和第一列赋值
for (int j = 0; j < i; j++)
{
array[0][j] = j + 1;
array[j][0] = j + 1;
}
//给包含在中间的赋值(利用第一行和第一列的数值)
for (int j = 1; j < i; j++)
{
//一行一行赋值
for (int k = 1; k < i; k++)
{
array[j][k] = array[j - 1][k - 1];
}
}
//输出
for (int j = 0; j < i; j++)
{
for (int k = 0; k < i; k++)
{
cout << array[j][k] << " ";
}
cout << endl;
}
cout << endl;
}
system("pause");
return 0;
}
题解:
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int main()
{
while (cin >> n)
{
for (int i = 0; i < n; i ++ )
{
for (int j = 0; j < n; j ++ )
cout << abs(i - j) + 1 << ' '; // 规律
cout << endl;
}
if (n) cout << endl;
}
return 0;
}
作者:ltk
链接:https://www.acwing.com/solution/content/6638/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。