题目来源:大工慕课 链接
作者:Caleb Sung
题目要求
编写程序,实现如下规律的5*5矩阵存入数组,并输出该数组
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
思路
经过观察得知,方阵中每个元素的值为其下面四个属性值中的最小的那个:
- 行数
- 列数
- 6-行数
- 6-列数
由此就可以写出代码了。
参考解答
由于实在担心自己弄混,这里我int定义的是6*6矩阵,0行与0列没有使用而已:
#include<stdio.h>
void main()
{
int a[6][6], i, j, tmp;
//赋值
for(i=1; i<=5; i++){
for(j=1; j<=5; j++){
tmp = 99;
if(i < tmp)
tmp = i;
if(j < tmp)
tmp = j;
if(6-i < tmp)
tmp = 6-i;
if(6-j < tmp)
tmp = 6-j;
a[i][j] = tmp;
}
}
//打印
for(i=1; i<=5; i++)
for(j=1; j<=5; j++)
{
printf("%d\t",a[i][j]);
if(j==5)
printf("\n");
}
printf("\n");
}
运行结果
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1