填空题
给定程序中,函数fun的功能是建立一个N×N的矩阵。 矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值
全部为3,…依次类推。例如,若N=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
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 7
void fun(int (*a) __1__)
{ int i,j,k,m;
if(N%2==0) m=N/2 ;
else m=N/2+1;
for(i=0; i<m; p="" {
for(j= __2__ ; j<n-i; p="" j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1; k<n-i; p="" k++)
a[k][i]=a[k][N-i-1]= __3__;
}
}
main()
{ int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; i<n; p="" i++)
{ for(j=0; j<n; p="" j++)="" printf(?%3d?,x[i][j]);
printf("\n");
}
}
解题思路:
第一处:建立一个N×N的矩阵,所以应填:[N]。
第二处:j的起始变量值应i。
第三处:也应该填写i+1。