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

admin2017-02-27  24

问题 给定程序MODI1.C中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每五个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。
    例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。
    请改正程序中的错误,使它能得出正确结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#define SIZE 20
fun (double  *s, double  *w)
{ int k,i; double sum;
     for ( k=2,i=0;i      sun=0 . 0;
      for ( k=0,i=0; i    {   sum+=S
         if (i+1005==0)
       {  w[k]=sum/5;  sum=0;  k++; }
         }
   return k;
}
main ()
{   double  a [SIZE] ,b [SIZE/5] ;
  int i,k;
    k =fun (a,b) ;
    printf "The original data:\n") ;
    for (i=0;  i    {   if (i%5==0)  printf ("\n") ;
        printf ("%4.0f", a ) ;
        }
    printf "’\n\nThe  result  :\n");
      for (i=0;  i    printf ("\n\n") ;
}

选项

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

解析 本题函数的功能是对每5个元素求一个平均值。首先要依顺序读取每5个元素,并对这5个元素取平均值。
(1)在第一标识下“sun=0.0; ”,根据题意,这是给sum赋值,而sun没有定义编译时会提示错误,应改为“sum=0.0,”。
(2)错误标识下的if判断语句是依顺序取5个字符,if中的逻辑表达式语法有误,由于1%5恒等于1,所以i+1%5也就等价于i+1了,所以将“if(1+1%5=0)”改为“if((i+1)%5==0)”,此处主要注意的是运算符的优先级。
转载请注明原文地址:https://kaotiyun.com/show/CgID777K
0

相关试题推荐
最新回复(0)