首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为何for和while中的判断部分不能用函数来写,if却可以,有什么好办法吗

2013-08-09 
为什么for和while中的判断部分不能用函数来写,if却可以,有什么好办法吗?本帖最后由 shizy08 于 2013-07-30

为什么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 }


第二个问题:

 

热点排行