请编写一个程序: 利用二维数组创建如图4-16所表示方阵,并显示输出。
规律是:主对角线上的元素都是1,然后主对角线两侧数据递增,当数据大于3以后,数据为0
运行效果如下:
代码:
#include <stdio.h>
int main()
{
int i,j;
int a[6][6];
for (i=0;i<6;i++)
{
for (j =0;j<6;j++)
{
if(i==j) a[i][j] = 1;//对角线元素是1
else if(j<i)
{
a[i][j] = 1 + i-j;
if(a[i][j]>3) a[i][j] =0;
}else
{
a[i][j] = 1 + j-i;
if(a[i][j]>3) a[i][j] =0;
}
}
}
//显示
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
{
printf("%2d",a[i][j]);
}
printf("\n");
}
return 0;
}
你题目的解答代码如下:
#include <stdio.h>
#include<math.h>
int main()
{
int n=6,i,j,t=3,m;
int a[n][n];
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
m = abs(j-i)+1;
a[i][j] = m<=t?m:0;
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
如有帮助,望采纳!谢谢!