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

为什么这个代码最后只出现407

#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;    

}


正在回答

3 回答

如果我没猜错,你的td算错了

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

与淡茶 提问者

改成这样么ta=num%10/10
2018-07-31 回复 有任何疑惑可以回复我~
#2

修裾欲溯空 回复 与淡茶 提问者

是的呢
2018-07-31 回复 有任何疑惑可以回复我~
#3

与淡茶 提问者 回复 修裾欲溯空

谢谢,我试一下
2018-07-31 回复 有任何疑惑可以回复我~
#4

修裾欲溯空 回复 与淡茶 提问者

对了,是td
2018-07-31 回复 有任何疑惑可以回复我~
#5

与淡茶 提问者 回复 修裾欲溯空

不对呀,我td原来就是num%10/10呀,
2018-07-31 回复 有任何疑惑可以回复我~
#6

修裾欲溯空 回复 与淡茶 提问者

。。。那就改成num/10%10
2018-07-31 回复 有任何疑惑可以回复我~
#7

修裾欲溯空 回复 与淡茶 提问者

等等。。。
2018-07-31 回复 有任何疑惑可以回复我~
#8

与淡茶 提问者 回复 修裾欲溯空

哦哦,这样就对了,谢谢,麻烦问一下,先取余和先除于有什么差别么,
2018-07-31 回复 有任何疑惑可以回复我~
#9

修裾欲溯空 回复 与淡茶 提问者

拿153做例子,先取余(%10)得到的是最后一位,3,先除以(/10)得到的是15;当然,你也可以写成num%100/10,这样算出来的结果也是一样的
2018-07-31 回复 有任何疑惑可以回复我~
#10

与淡茶 提问者

好的,谢谢
2018-07-31 回复 有任何疑惑可以回复我~
查看7条回复

加括号就先执行括号里面的


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

这样td =num/10%10

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

与淡茶 提问者

加不加括号还不一样么
2018-07-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这个代码最后只出现407

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