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

admin2009-02-15  25

问题 下列给定程序中,函数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)

解析 错误1:if语句的两侧要加括号。错误2:yes为1时,说明被判断的数为素数,要加入总和。
转载请注明原文地址:https://kaotiyun.com/show/sHID777K
0

最新回复(0)