| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 767 人关注过本帖
标题:一直想不通~~
只看楼主 加入收藏
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
结帖率:66.67%
收藏
已结贴  问题点数:8 回复次数:1 
一直想不通~~
#include<stdio.h>
int isprime(int);
int main()
{
    int num,i,k=0;
    scanf("%d",&num);
    for(i=2;i<=num;i++)
        if(isprime(i))
        {
            printf("%d\t",i);
            k++;
        }
        printf("k=%d\n",k);
        return 0;
}
               
int isprime(int g)
{
    int k;
    for(k=2;k*k<=g;k++)
        if(g%k==0)            
    return 0;      
    return 1;
}
为什么在return 1;前加个else,运行结果会不一样。。


2016-10-29 17:55
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
收藏
得分:8 
int isprime(int g)
{
    int k;
    for(k=2;k*k<=g;k++)
        if(g%k==0)            
             return 0;   
   
    return 1;
}
int isprime(int g)
{
    int k;
    for(k=2;k*k<=g;k++)
        if(g%k==0)            
             return 0;   
        else
            return 1;
}
不加else return 1;在for循环外面,加了else return 1;在循环里面,你的for只会执行一次就退出。因为if和else必有一个执行。
2016-10-29 18:40
快速回复:一直想不通~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.312305 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved