为什么for和while中的判断部分不能用函数来写,if却可以,有什么好办法吗?
本帖最后由 shizy08 于 2013-07-30 21:28:31 编辑 下面程序中的 for 和while 都不能运行
int i,a = 16;
i=3;
// for(i=3;IsPrime(i);i++)
while(IsPrime(i)){
printf("%d is a lucky number.\n",i);
i++;
}
分开写成
while(1){
if(IsPrime(i)){...}
}
就没问题
这是怎么回事
但是,我们怎么总是写成while(scanf("%d",&n) != -1)?
其中,IsPrime函数如下
int IsPrime(int n)
{
double k;
int i;
k = sqrt(n);
for(i=2;i<k+1;i++){
if(n%i == 0) return 0;
}
return 1;
}
还有,要怎样才能用bool,
写成1,0,看起来很别扭,还是true/false比较顺
谢谢~~
[解决办法]
18 #include <stdlib.h>
19 #include <stdio.h>
20
21
22 int test_func(int n)
23 {
24 if (n > 0)
25 return 1;
26 else
27 return 0;
28 }
29 int main(void )
30 {
31 int i = 3;
32 while( test_func(i) ) //测试代码 ,这里是OK的
33 {
34 printf("OK\n");
35 break;
36 }
37 printf("return \n");
38
39 return 0;
40 }
第二个问题: