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

这样不可以么

#include <stdio.h>int main(){    //定义三位数num,个位数sd,十位数td,百位数hd    int num, sd, td, hd;    //循环所有三位数    for(hd=0,td=0,sd=0;hd<10&&td<10&&sd<10;hd++,td++,sd++)    {        num=hd*100+td*10+sd;        if(num==hd*hd*hd+td*td*td+sd*sd*sd)         {            printf("水仙花数字:%d\n", num);            }    }    return 0;    }


提问者:Liwei_ 2019-11-06 19:31

个回答

  • 宝慕林4448533
    2019-11-26 15:34:55

    好厉害!!?

  • qq_慕圣6428003
    2019-11-08 17:54:16

    你这样写的话,个位数,十位数,百位数是同时+1的,相当于你只判断了000,111,222,333,444,555,666,777,888,999。如果真要这么写,需要三重for循环,把个位十位百位分开,像下面这样,而且百位要从1开始

    #include <stdio.h>
    int main(){    //定义三位数num,个位数sd,十位数td,百位数hd
        int num, sd, td, hd;    //循环所有三位数
        for(hd=1;hd<10;hd++)
            {
                for(td=0;td<10;td++)
                {
                    for(sd=0;sd<10;sd++)
                   {


                num=hd*100+td*10+sd;
            if(num==hd*hd*hd+td*td*td+sd*sd*sd)
            {
                printf("水仙花数字:%d\n", num);
            }
                   }
              }
        }
        return 0;
        }