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

hd td sd 怎么弄来的 不懂

  //获取三位数字num百位上的数字
        hd = num/100   ;
        //获取三位数字num十位上的数字
        td = (num%100)/10    ;
        //获取三位数字num个位上的数字
        sd = num%10   ;

提问者:慕标10591715 2019-10-01 18:00

个回答

  • weixin_慕田峪504134
    2019-10-02 18:19:10

    #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/100将会得到一个整数,比如这里num是567,那么567/100=5而不是5.67(计算机算数)

     //获取三位数字num十位上的数字       
             td = (num%100)/10 ;                    //同理num=567则567%100=67(%是取余)67/10=6     
             sd = (num%100)%10;                     //同取余得567%100=67  67%10=7  
              if(num == hd*hd*hd+td*td*td+sd*sd*sd)       
              {     
        printf("水仙花数字:%d\n",num);       
                 
              }  
         }  
     return 0;
    }


  • weixin_慕田峪504134
    2019-10-02 18:12: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;     
             sd = (num%100)%10;    
              if(num == hd*hd*hd+td*td*td+sd*sd*sd)       
              {     
        printf("水仙花数字:%d\n",num);       
                 
              }  
         }  
     return 0;
    }

  • qq_慕斯卡0236167
    2019-10-02 15:51:38

    num/100是取整的运算,就比如随便一个三位数346进行346/100==3

    而%是取到余数,同样346%100==46,这时我们再进行取整4运算就是:46/10==4即把十位提出了

    最后一步346%10直接就是余6的,个位也得到了输出