运行成功,输入错误

来源:4-9 循环结构之for循环(二)

qq_慕圣0484208

2019-02-02 11:37

#include <stdio.h>

int main()

{

    //定义三位数num,个位数sd,十位数td,百位数hd

    int num, sd, td, hd;

    //循环所有三位数

    for(num = 100; num <1000   ;num++  )

    {

        //获取三位数字num百位上的数字

        hd =num/100         ;

        //获取三位数字num十位上的数字

        td =(num-hd*100)/10    ;

        //获取三位数字num个位上的数字

        sd = num-td*100-td*10 ;

        //水仙花数的条件是什么?

        if( num == td*td*td +sd*sd*sd+ hd*hd*hd ) 

        {

            printf("水仙花数字:%d\n", num);    

        }

    }

    return 0;    

}


写回答 关注

3回答

  • KingToAce
    2019-02-14 15:09:14
    #include <stdio.h>
    int main()
    {
        //定义三位数num,个位数sd,十位数td,百位数hd
        int num, sd, td, hd;
        //循环所有三位数
        for(num=100; num<1000; num++)
        {
            //获取三位数字num百位上的数字
            hd = num/100;
            //获取三位数字num十位上的数字
            td = num/10%10;
            //获取三位数字num个位上的数字
            sd = num%10;
            //水仙花数的条件是什么?
            if(num==hd*hd*hd+td*td*td+sd*sd*sd) 
            {
                printf("水仙花数字:%d\n", num);    
            }
        }
        return 0;    
    }


  • 兔布斯
    2019-02-10 17:49:48

    hd和td取值代码错了,缺一个强制转换,这样只是单纯除以100,肯定不会得到整数

    改成hd=(int)num/100;td=(int)(num-hd*100)/10;  这样应该没什么问题了

  • 慕九州6235632
    2019-02-02 15:21:39

     td =  num%100/10 
     sd =   num%10

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926206 学习 · 20797 问题

查看课程

相似问题