• 下列给定程序中,函数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)错误:ifhigh%j=0         正确:if(high%j==0)(2) 错误:if(yes==0)         正确:if(yes) 解析:错误1:if语句的两侧要加括号。错误2:yes为1时,说明被判断的数为素数,要加入总和。
  • 2021年07月16日 21时52分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网