投稿 资料上传 提问 搜索
您现在的位置是: 首页 > 问答 > 正文

为什么去掉else{return(0);} 之后会输出每一个数,而不只是水仙数?求大神教一下


#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);}之后


问题回复
  1. 小辣鸡


    return 0;代表不是水仙数,返回值为0

    下面的else判断返回值是1还是0,是1的时候才输出

    回复
  2. 简讯
    简讯IT技术之家

        当你去掉 else{return(0);} 时 , 函数中没有返回值,于是这个函数返回了exa中存储的值  ;不同编译器不同,可能得到的结果就不同,比如说,我通过去掉else{return(0);}得到的结果是:

        水仙数有:100 153 370 371 407  

    回复