下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。 例如:若high的值为100,则函数的返回值为1060。 请改正程序中的错误,使它能得到正确结果。 [注意] 不要改动main函

admin2010-11-26  31

问题 下列给定程序中,函数fun()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。
   例如:若high的值为100,则函数的返回值为1060。
   请改正程序中的错误,使它能得到正确结果。
   [注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。
   [试题源程序]
   #include <conio.h>
   #include  <stdio.h>
   #include<math.h>
   int fun(int high)
   {
   int sum=0, n=0, j, yes;
   while(high>=2)
   {
   yes=1;
   for(j=2;j<=high/2; j++)
   **********************found**********************/
   ifhigh%j==0
   {
   yes=0;
   break;
   }
   /**********************found**********************/
   if(yes==0)
   {
   sum+=high;
   n++;
   }
   high--;
   }
   return sum;
   }
   main()
   {
   clrscr();
   printf("%d\n", fun(100));
   }

选项

答案(1)错误:ifhigh%j==0 正确:if(high%j==0) (2)错误:if(yes==0) 正确:if(yes)

解析 fun函数的功能是:用while循环查找high以内的素数;用for循环判断一个数是否为素数;用变量n记录找到的素数的个数:用return返回素数之和sum。
   错误1:这个错误比较明显,if语句的两侧要加括号。
   错误2:yes为1时,说明被判断的数是素数,要累加到sum。
转载请注明原文地址:https://kaotiyun.com/show/9JID777K
0

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