题目内容
阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。
[说明]
本程序将自然数1,2,……,N2(N=5)按蛇形方式逐个顺序存入N阶矩阵。令n=N-1,则矩阵中的每一元素可用aij标记,其中i,j(0≤i,j≤n)分别为其所在行的行号和所在列的列号。蛇形方式顺序存放的方法是从an0开始、到a0n为止,依次填入由1递增的自然数,交替地对每一斜列从左上角向右下角或从右下角向左上角排列。程序的输出为:
[程序]
include <stdio.h>
include <math.h>
define SIZE.10
int a[SIZE] [SIZE],k;
void write(int n) /*输出矩阵*/
{ int i,j;
for(i=0;i<=n;i+ +){
for(j=0; j<=nj j+ +)
printf("%4d",a[i][j]);
printf("\n");
}
}
void makeline(int row_start, int col_start, int row_end) /*完成矩阵一条斜线的整数填写*/
{ int i,j, sign;
sign=((1)> =0)? 1:-1;
for(i = row_start,j = col_start; (row_end-i) * sign>=0; i+=sign,j+=sign)
a[i][j]=(2);
}
void makeArray(int n) /*完成矩阵每条斜线的整数填写*/
{ int d;
for(d=1;d<=(3);d+ +)
if(d< =n+1)
if(d%2)
makeline((4));
else
makeline(n+1-d,0,n);
else
if(d%2)
makeline((5));
else
makeline(0,d-n-1,2*n-d+1);
}
void main()
{ int n, N=5;
k=1; n=N-1;
makeArray(n);
write(n);
}
查看答案
搜索结果不匹配?点我反馈
更多问题