问答题 (补充每对/**/之间的程序段,完成题目的要求)
问答题 程序中的fun()函数用以完成如下数学表达式。
【正确答案】
【答案解析】double y;
if(x>0)
y=log10(x)/x;
else if(x==0)
y=0;
else
y=sqrt(1+x*x);
return y;
问答题 程序定义了N×N的二维数组a,且在主函数已赋值,请编写函数fun()用以实现数组a各元素(不含最后一行与最后一列)值的重置:各元素的值等于它和相邻右侧、下方、右下方三元素之和平均值的整数。
#include<stdio.h>
#define N 5
void fun(int a[N][N])
{/**/



/**/
}
int main()
{
int a[N][N]={{2, 3, 5, 4, 5}, {3, 4, 2, 5, 3}, {3, 5, 6, 2, 4}, {5, 3, 4, 6, 2}, {4, 3, 2, 6, 5}};
int i, j;
fun(a);
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
printf("%d", a[i][j]);
printf("/n");
}
return 0;
}
【正确答案】
【答案解析】int i, j;
for(i=0; i<N-1; i++)
for(j=0; j<N-1; j++)
{
a[i][j]=(a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1])/4;
}