改错题
给定程序中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include<stdio.h>
int fun(int m)
{ int k=2;
while(k<=m&&(m%k))
/**********found**********/
k++
/**********found**********/
if(m=k)
return 1;
else return 0;
}
main()
{ int n;
printf('\nPlease enter n:');
scanf('%d', &n);
if(fun(n))printf('YES\n');
else printf('NO!\n');
}
【正确答案】(1)k++; (2)if(m==k)
【答案解析】 函数fun的功能是判断m是否为素数:m从2开始作为除数,并对m取余,若不存在一个数使得余数为0,则m为素数,第一处程序错误丢失分号,第二处程序的错误在于if(m=k)语句中的逻辑表达式写成了赋值语句。