题目描述
给定程序功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部是1;从外向内第二层元素的值全部为2;第三层元素的值全部是3,…依此类推。
输入
输入矩阵的维数N(N<100)
输出
构造的矩阵
样例输入
9
样例输出
1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 4 4 3 2 1
1 2 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1
这题的重点就是思路:找出i,j,n-i+1,n-j+1的最小值,然后让他们都等于最小值就好了。
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int min1,min2,min;
min1=i>j?j:i;
min2=(n-i+1)>(n-j+1)?(n-j+1):(n-i+1);
min=min1>min2?min2:min1;
printf("%d ",min);
}
printf("\n");
}
}