有一个小问题哦
#include<iostream>
#include<math.h>
using namespace std;
int main(){
int a,b,is_c=true;
cout<<"Enter a number:";
cin>>a;
b=2;
while(b<=sqrt((double)a)){
if(a%b==0)
is_c=false;
//在此处加else程序为什么不能运行啊?
b++;}
if (is_c)
cout<<"The numbers are!\n";
else
cout<<"The numbers are not!"<<endl;
return 0;
}
问题点数:20、回复次数:4Top
1 楼machunhua001(翼天)回复于 2006-03-04 16:29:27 得分 0
is_c=false;
//在此处加else程序为什么不能运行啊?
b++;}
Top
2 楼cxc014(有心插柳柳不活,无心栽花花开花?)回复于 2006-03-04 16:45:04 得分 5
is_c=false;
//在此处加else程序为什么不能运行啊?
b++;}
===============
不是不能运行
如果加上else,那么if(a%b==0)为真的话,就没有执行b++,b<=sqrt((double)a 始终为真,死循环Top
3 楼machunhua001(翼天)回复于 2006-03-04 17:04:04 得分 0
为什么是死循环啊?我认为这样做没错Top
4 楼ugg(逸学堂(exuetang.net))回复于 2006-03-04 19:28:30 得分 15
while(b<=sqrt((double)a))
{
if(a%b==0)
is_c=false;
//在此处加else程序为什么不能运行啊?
// 如果此处加上else,当a%b==0时,而还满足b<=sqrt((double)a,这个循环就
// 形成一个死循环,或者你在if(a%b==0)
{
is_c=false;
break;// 加上break,这样才可以跳出循环,
}
else//
{
b++;
}
}
if (is_c)
cout<<"The numbers are!\n";
else
cout<<"The numbers are not!"<<endl;
Top




