为了账号安全,请及时绑定邮箱和手机立即绑定

这个代码有问题吗

#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%100)/10;

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

        sd = (num%100)%10;

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

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

        {

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

        }

    }

    return 0;    

}


正在回答

4 回答

hd,td,sd只是一个数,例如:hd=1,2,3,4,5,6,7,8,9;sd=0,1,2,3,4,5,6,7,8,9;td=0,1,2,3,4,5,6,7,8,9; sd=num-hd-td这个表达式应该还是一个两位数或三位数,这个表达式应该不对。

0 回复 有任何疑惑可以回复我~

%是取余运算,应该用/,比如153%100=1....53 取的是53不是1,所以错了

1 回复 有任何疑惑可以回复我~

#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)%10;

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

        sd =num-hd-td;

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

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

        {

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

        }

    }

    return 0;    

}

参考参考。

2 回复 有任何疑惑可以回复我~

num0是什么

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这个代码有问题吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信