给定程序MODll.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。 在main( )数中,若fun返回1输出YES,若fun返回0输出NO!。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数。不得增行

admin2014-06-20  20

问题 给定程序MODll.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。
在main(    )数中,若fun返回1输出YES,若fun返回0输出NO!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数。不得增行或删行,也不得更改程序的结构!
#include<stdio.h>
intfun(intm)
{intk=2;
while(k<=m&&(m%k))
/************found************/
k++
/************found************/
if(m=k)
retum1;
elseretum0:
}
main(    )
{intn;
printf(’’\nPleaseentern:’’);scanf(’’%d’’,&n);
if(fun(n))pfintf(’’YES\n’’);
elseprintf(”N0!\n”);
}

选项

答案(1)k++; (2)if(m=k)

解析 本题中函数的功能是判断一个整数n是否是素数。素数是只能被1和本身整除的正整数(>1),所以判别n是否为素数,只要用2、3、…、n.1这些数逐个去除n,观察余数是否为0即可,只要有一次相除余数为0,n就不是素数,否则n为素数。(1)第一个标识下”k++”语句没有结束符分号,所以将”k++”改为”k++;”。(2)第二个标识下的”if(m:k)”语句应该是判断m是否素数,而原题中是将k的值赋给m,并不表示是否m等于k,所以第二个标识下”if(m=k。)”应该改为”if(m=k)”。
转载请注明原文地址:https://kaotiyun.com/show/LCID777K
0

最新回复(0)