C语言问题,高手HELP!!

来源:百度知道 编辑:UC知道 时间:2024/06/05 00:38:13
下面两个函数:
1:int isprime(long x)
{
long i;
for(i=2;i<=sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
2:int root(double a,double b,double c,double *x1,double *x2)
{
double d;
d=b*b-4*a*c
if(d>=0){
*x1=(-b+sqrt(d)/(2*a))
*x2=(b+sqrt(d)/(2*a))
return 1;
}
else return 0;
}
为什么前一个函数不能带ELSE,而后一个可以?

因为第一个是在for循环中判断if,而return 1是要在循环外才执行,如果你加上else那循环就只能执行第一次就返回了,显然不符合要求

就是这么简单

1:int isprime(long x)
{
long i;
for(i=2;i<=sqrt(x);i++)

if(x%i==0) return 0;
else return 1;

}