题目内容:
下列给定程序中,函数proc()的功能是:按顺序给str 所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若Str所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,str所指数组有17个元素,则只对前15个元素进行处理,不对最后的2个元素求平均值。 程序执行结果为The original data:
2 4 6 8 10
12 14 16 18 20
22 24 26 28 30
32 24
The result:
6.00 16.00 26.00
请修改函数proc()中的错误,使它能得出正确的结果。
注意:不要改动main ()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#define SIZE 20
proc(double*str。double*w)
{
int k,i;double slim;
for(k=2,i=0;i<SIZE;i++)
{str[i]=k;k+=2;)
sum=0.0:
for(k=0,i=0;i<SIZE;i++)
{
sum+=str[i]:
//****found****
if(i+1%5==o)
{w[k]=sum/5;sum=0;k++;}
}
return k:
}
void main()
{
double a[SIZE],b[SIZE/5];
int i,k;
k=proc(a,b);
printf("The original data:\n");
for(i=0;i<SIZE;i++)
{
if(i%5==0)printf("\n");
printf("%4.Of",a[i]);
}
printf("knknThe result:\n");
for(i=0;i<k;i++)printf("%6.2f",b[i]);
printf("\n\n");
}
参考答案:【答案仅供学习,请勿对照自行用药等】
答案解析: