下列给定程序中 函数fun()的功能是:找出一个大于给定整数m且紧随m的素数 并作为函数值返回。 请改

计算机 函数,素数,程序 已帮助 人

下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

include <conio.h>

include <stdio.h>

int fun(int m)

{ int i,k;

for (i=m+1; ;i++)

{ for (k=2;k<i;k++)

/*************found**************/

if (i%k!=0)

break;

/*************found**************/

if (k<i)

return(i);

}

}

main()

{ int n;

clrscr ();

printf(" Please enter n: ");

scanf ("%d", &n);

printf ("%d ",fun(n));

}

请帮忙给出正确答案和分析,谢谢!

热搜:下面程序的功能是输出数组s中最大元素

答案解析

难度★★☆ 搜索
  • 正确答案:(1)错误: if(i%k!=0) 正确: if(i%k=0) (2)错误: if(k<i) 正确: if(k>=i)
    (1)错误: if(i%k!=0) 正确: if(i%k=0) (2)错误: if(k<i) 正确: if(k>=i) 解析:也许刚接触C语言的学习者对素数的概念不清楚,在这里说明一下,素数就是质数,本题的任务是随便输入一个整数m,然后在m的后面寻找紧跟m的一个质数,作为函数值返回。
    for (i=m+1; ;i++){
    是从m后面的一位开始循环,将m后面一位的值赋予i。然后;我们依次判断m后面的一位是否为素数。
    for (k=2;k<i;k++)
    if (i%k==0)
    是一个简单的数学判断问题,判断i被赋予的值与k的余数是否为零。