我是首先按照n<100创建了一个[1,100)的数组,然后由于是对角线,那么i行j列,j>=i的时候就是开始顺序输出数组的时候,其中每1行是要换行的,没有数字的j<i的时候是需要有5个英文空格的。
#include<iostream>
#include<iomanip>
using namespace std;
void hinput(int x,int a[]) {
for (int k = 0; k < x; k++)
cout << setw(5) << a[k];
}
int main() {
int n;
cin >> n;
int a[100];
//构建数组
for (int i = 0; i < 100; i++)
a[i] = i + 1;
//输出
for (int i = 1; i <= n; i++) {
int x = n - i + 1;
for (int j = 1; j <= n; j++) {
if (i <= j) {
hinput(x, a);
break;
}
else cout << " ";
}
cout << "\n";
}
return 0;
}