各位前辈谁能讲一下,谢谢!

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

伯乐3634661

2021-01-06 11:29

#include <stdio.h>

int main()

{

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

    int num, sd, td, hd;

    //循环所有三位数

    for(   ?  ;  ?   ;    ?  )

    {

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

        hd =        ?         ;

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

        td =        ?         ;

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

        sd =        ?         ;

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

        if(     ??                 ) 

        {

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

        }

    }

    return 0;    

}


写回答 关注

3回答

  • qq_慕仙9261721
    2021-01-09 16:11:02

    思路:水仙花数的条件1、三位数---->范围在100~1000之间---->for语句为for(num=100;num<1000;num++);

                                      2、满足a*100+b*10+c=a*a*a+b*b*b+c*c*c--------->if判断条件为

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

                剩下的就只有求三位数的个、十、百位的问题;依据int数据类型特点,num/100可以取到num的百位上的数字,num%100/10得到num的十位数字,num%10或num%100%10得到num的个位数字,所以完整解答如下:

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

    }


  • 慕UI6264580
    2021-01-06 15:38:18

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

  • 洛辰xv
    2021-01-06 15:36:19

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

        {

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

            hd =num/100;

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

            td =num/10 - hd*10;

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

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

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

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

            {

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

            }

        }


C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题