问答详情
源自:4-9 循环结构之for循环(二)

for循环4—9练习题

输出所有水仙花数字。

所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数,如:153就是一个水仙花数,153=1*1*1+5*5*5+3*3*3。

在代码编辑器中:

第7、10、12、14、16行完善代码

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

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

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

        {

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

        }

    }

    return 0;    

}



sd =(num-hd*100-td*10)\10;这么写为什么不行?

提问者:上僐若閖 2016-12-06 22:47

个回答

  • 慕容5347539
    2016-12-07 01:02:50
    已采纳

    可以写成:sd =(num-hd*100-td*10),代入一个任意数501,sd=(501-5*100-0*100)=1。如果再/10就错了,得不到个位数了。忘采纳!