填空题
下列给定程序中,函数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("/nPlease enter n: "); scanf ("%d", &n); printf ("%d/n",fun(n));
【答案解析】[解析] 也许刚接触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的余数是否为零。