一、原题题目
虽然这次比较简单,写的也很顺利,但还是来写一下吧,毕竟人家三道题目都是一个系列的,好了,来看题目:
二、解题思路
看样例可以知道,每个方阵对角线的位置都是1,并从此向下向右逐次加1,所以我们就可以这样来进行遍历再赋值。其中,对角线位置下标关系为 i == j
,向下遍历的关系是 i > j
,向右遍历的关系是 i < j
,明白这些,就很容易 AC 啦 ~~
三、代码实现
#include <stdio.h>
#define N 110
int main()
{
int n, a[N][N];
while (scanf("%d", &n) && n != 0)
{
for (int i = 0; i < n; i ++){
for (int j = 0; j < n; j ++){
if (i == j)
a[i][j] = 1;
else if (i < j)
a[i][j] = a[i][j-1] + 1;
else
a[i][j] = a[i-1][j] + 1;
}
}
for (int i = 0; i < n; i ++) {
for (int j = 0; j < n; j ++)
printf("%d ", a[i][j]);
printf("\n");
}
printf("\n");
}
return 0;
}
四、题目总结
本题主要就是从对角线位置赋值 1 开始,再根据每个位置下标的关系,逐次加一并赋值即可,还是比较简单的。