| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1789 人关注过本帖
标题:关于return不懂
只看楼主 加入收藏
facemei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-5-1
收藏
 问题点数:0 回复次数:8 
关于return不懂
#include<stdio.h>
int m(int a)
{
    if(a<=999&&a>=100)
    {
        int b,c,d;
        b=a/100;
        c=a/10%10;
        d=a%10;
        if(b*b*b+c*c*c+d*d*d==a)
        {
            return(1);
        }
        else
        {
            return(0);
        }
    }
}
main()
{
    int i;
    printf("水仙数有:");
    for(i=100;i<=999;i++)
    {
        if(m(i)==1)
        {
            printf("%d\t",i);
        }
    }
}
为什么去掉else{return(0);} 之后会输出每一个数,而不只是水仙数?求大神教一下
2020-05-01 16:46
facemei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-5-1
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2020-05-01 16:51
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1689
专家分:4262
注 册:2007-12-27
收藏
得分:0 
你不指定返回值,
它就瞎编一个当作返回值咯。
你觉得瞎编出来的整数正好是0的可能性有多大?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-01 17:28
facemei
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-5-1
收藏
得分:0 
回复 3楼 forever74
要是随便返回也不可能每次都返回1吧?
2020-05-01 17:32
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1689
专家分:4262
注 册:2007-12-27
收藏
得分:0 
你可以调整下代码,再关闭掉优化试试。
不过我以为我们的目标是写鲁棒代码,对于充满偶然性的,或者说严格说来是错误的写法,不必较真。
错误道路千千万,躲开已知的错误就行,不必依次地踩一踩吧。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-01 18:45
炸天帮
Rank: 2
等 级:论坛游民
帖 子:17
专家分:62
注 册:2020-3-23
收藏
得分:0 
return语句带括号吗

c生万物
2020-05-02 08:40
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1689
专家分:4262
注 册:2007-12-27
收藏
得分:0 
括号不是return带的,而是后面的表达式被强行加了括号。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-02 09:32
q3064219762
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2020-5-2
收藏
得分:0 
回复 2楼 facemei
1111

[此贴子已经被作者于2020-5-2 12:22编辑过]

2020-05-02 09:59
q3064219762
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2020-5-2
收藏
得分:0 
return后面可以不加括号,但是必须多一个空格。如return(0)变成return 0
然后格式为:return 返回值
在函数中,返回值就是当主函数调用这个函时,返回的值。
如:
int ShiLli()
{
int a=3;
int b=7;
c=a+b;
return c;   //c=7+3=10、返回c值
}
mian()
{
int d;
shili()=d   ///c的值给d
printf(%d,d);   ////输出c(d)的值
return 0;
}
输出:10

[此贴子已经被作者于2020-5-2 12:30编辑过]

2020-05-02 12:22
快速回复:关于return不懂
数据加载中...
 
   



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

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