• 下列给定程序中,函数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) 解析:fun函数的功能是:用while循环查找high以内的素数;用for循环判断一个数是否为素数;用变量n记录找到的素数的个数:用return返回素数之和sum。 错误1:这个错误比较明显,if语句的两侧要加括号。 错误2:yes为1
  • 2021年07月13日 18时20分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

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