问答题 请编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。 例如,若给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0,11.0,则输出应为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; FILE *out; printf("\nThe original data is:"); for(i=0;i<9;i++) printf("%6.1f",a[i]); printf("\n"); s=fun(a): printf("s=%f\n",s); /************/ out=fopen("out.dat","w"); fprintf(out,"%f",s); fclose(out); /************/ }
【正确答案】正确答案: 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: }
【答案解析】解析:本题考查:for循环;sqrt函数(平方根的计算);复合赋值运算。 计算数组相邻两个元素的平均值,首先要取出数组中相邻两个元素,即x[i]和X[i+1]。本程序使用循环语句遍历整个数组,在条件语句中计算相邻两个元素的平均值,并累加其平方根。