问答题 请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。
例如,若给定数组中的9个元素依次为1210、3410、410、230、340、450、180、310、110,则输出应为S=35.951014。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#include<math.h>
double fun(double x[9])
{
}
main()
{
double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};
int i;
printf("/nThe original data is:/n");
for(i=0;i<9;i++)
printf("%6.1f",a[i]);
printf("/n/n");
s=fun(a);
printf("S=%f/n/n",s);
}
【正确答案】
【答案解析】double fun(double x[9])
{
double sum=0.0;
int i,j=1;
for(i=0;i<9;i++)
if(j<=8)
{
sum+=sqrt((x[i]+x[i+1])/2.0);j++; /*相邻两个元素之平均值的平方根之和*/
}
return sum;
} [解析] 计算数组相邻两个元素的平均值,首先要取出数组中相邻两个元素,即x[i]和x[i+1]。本程序使用循环语句遍历整个数组,在条件语句中计算相邻两个元素的平均值,并累加其平方根。