下列程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。 例如,s所指数组有14个元素,则只对

admin2020-01-10  54

问题 下列程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。
    例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
  试题程序:
1  #include<stdio.h>
2   #define SIZE 20
3   fun(double*s,double*w)
4   {  int k,i ; double sum;
5    for(k=2,i=0;i6    {  s=k ; k+=2;}
7   /*********found*********/
8    sun=0.0;
9    for(k=0,i:0;i10    {  sum+=s
11   /*********found*********/
12   if(i+1%5==0)
13    {w[k]=sum/5;sum=0;
14    k++;}
15    }
16    return k;
17  }
18   main()
19    {double a[SIZE],b[SIZE/5];
20    int i,k;
21    k=fun(a,b);
22    printf("The original data:\n’’);
23    for(i=0;i24    {  if(i%5==0) printf(’’\n’’);
25    printf(’’%4.Of’’,a);
26    }
27    printf(’’\n\nThe result:\n’’);
28    for(i=0 ; i29    printf(’’%6.2f’’,b);
30    printf(’’\n\n’’);
31  }

选项

答案(1)sum=0.0; (2)if((i+1)%5==0)

解析 (1)变量sum书写错误。
(2)循环条件if(i+1%5==0)是一个运算逻辑错误,应先计算i+1,再对5求余。
转载请注明原文地址:https://kaotiyun.com/show/uFCp777K
0

最新回复(0)