C++问题,请大鸟们快来指点!

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:16:39
帮我看一下下面的两段代码,两段代码只有一个地方不同,按照我的理解他们的意义是一样的,但是运行结果却不一样,代码I 运行结果正确,代码II 运行结果却错误。郁闷!
//代码I:
//素数判别:
#include <iostream>
using namespace std;
bool isPrime(int (n));
int main()
{
while(true)
{
cout<<"素数判别:"<<endl;
int x;
cin>>x;
if(isPrime(x))
cout<<x<<" 是素数。"<<endl;
else
cout<<x<<" 不是素数"<<endl;
cout<<"要继续判别,";system("pause");
system("cls");
}
system("pause");
return false;
}
bool isPrime(int n)
{
if(n<=1)
return false;
for(int i=2;i<n;i++)
if(n%i==0) //此处不同
return false; //此处不同
return n;
}

//代码II:
//素数判别:
#include <iostream>
using namespace std;
bool isPrime(int

肯定不一样啊,第二个显然是错的。
拿15来说,第二个15%2!=0,则返回TRUE,15难道是素数?

还有,要养成习惯,FOR循环语句别忘了加“{ }”