| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 270 人关注过本帖
标题:程序纠错(关于return的问题)
只看楼主 加入收藏
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
结帖率:62.5%
收藏
已结贴  问题点数:10 回复次数:5 
程序纠错(关于return的问题)
题目:编写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息
#include<stdio.h>
#include<math.h>
void main()
{
    int x,flag;
    int f(int m);
    scanf("%d",&x);
    flag=f(x);
    if(flag==0)
        printf("%d is not a prime number.\n",x);
    else
        printf("%d is a prime number.\n",x);
}

int f(int m)
{
    int i,k;
    k=sqrt(m);
    for(i=2;i<=k;i++)
        if(m%i==0)
        {
            break;
            return(0);
        }
    return(1);
}

运行上面程序后发现不管输入什么数标志量flag始终是1,说明int f(int m)这个函数的返回值始终是1,难道上面这段程序执行完return(0)还会执行return(1)么?印象中好像是如果在被调用函数遇到return就不管下面的return了啊?
搜索更多相关主题的帖子: include return number 
2013-03-03 23:50
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:10 
把break删掉,汗


[fly]存在即是合理[/fly]
2013-03-03 23:51
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 2楼 azzbcc
谢谢~可是不明白这里break是跳出循环的,为什么会引起错误啊?
2013-03-03 23:53
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 2楼 azzbcc
额,明白了,应该换个位置,把BREAK放后面。。。。晕
2013-03-03 23:54
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
放后面?

执行return后,函数都结束了,break没有意义的


[fly]存在即是合理[/fly]
2013-03-04 00:00
killah
Rank: 2
等 级:论坛游民
帖 子:55
专家分:11
注 册:2013-2-4
收藏
得分:0 
回复 5楼 azzbcc
对的对的,谢谢指导~
2013-03-04 17:41
快速回复:程序纠错(关于return的问题)
数据加载中...
 
   



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

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