数列中,第一项值为3,后一项都比前一项的值增5:给定程序MODll.C中函数fun的功能是:计算前n(4

admin2013-04-02  28

问题 数列中,第一项值为3,后一项都比前一项的值增5:给定程序MODll.C中函数fun的功能是:计算前n(4    例如,当n的值为20时,该数列为3,8,13,18,23,28,……,93,98。符合此条件的累加值应为42,126,366,570,1010。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define N 20
int fun(int n,int *a)
{int i,j,k,sum;
/**************found**************/
   sum=j==0;
   for(k=3,i=0;i   {sum=sum+k;
/**************found**************/
      if(if(sum%4=2))
         a[j++]=sum;
   }
   return j;
}
main()
{int a[N],d,n,i;
   printf("\nEnter n (4   d=fun(n,a);
   printf("\n\nThe result :\n");
   for(i=0; i);printf("\n\n");
}

选项

答案sum=0;j=0; if(sum%4==2)

解析 (1)根据题意第一标识下“sum=j==0;”是给sum和j赋初值0,故应改成“sum=0;j=0;”。
(2)第二个标识下的if语句是根据题干要求,累加和被4除后余2,而原题是将2赋值给sum%4。所以,第二个标识下“if(sum%4=2)”应该改为“if(sum%4==2)”。
转载请注明原文地址:https://kaotiyun.com/show/QDJp777K
0

最新回复(0)