有沒有大神 教我讀懂這組代碼。。
#include <stdio.h>
int main()
{
??? //定義三位數(shù)num,個(gè)位數(shù)sd,十位數(shù)td,百位數(shù)hd
??? int num, sd, td, hd;
??? //循環(huán)所有三位數(shù)
??? for(num=100;num<1000;num++)
??? {
??????? //獲取三位數(shù)字num百位上的數(shù)字
??????? hd =num/100;
??????? //獲取三位數(shù)字num十位上的數(shù)字
??????? td =num%100/10;
??????? //獲取三位數(shù)字num個(gè)位上的數(shù)字
??????? sd =num%10;
??????? //水仙花數(shù)的條件是什么?
??????? if(num==hd*hd*hd+td*td*td+sd*sd*sd)
??????? {
??????????? printf("水仙花數(shù)字:%d\n", num);?? ?
??????? }
??? }
??? return 0;?? ?
}
2019-11-16
for循環(huán)開始,因?yàn)閚um是三位數(shù)所以定義為100開始,然后再+1直到三位數(shù)結(jié)束;hd是整型所以可以直接除100;td是num取除100的余數(shù)再除10;sd是num除10取余數(shù),可以用實(shí)際例子驗(yàn)算一下;而if就是判斷是不是水仙花數(shù),按要求來的;如果是就輸出printf語句,不是不輸出。
2019-11-26
我理解哈,for相當(dāng)于一個(gè)命令,有三條語句,考慮到時(shí)三位數(shù),那就是從100≤num<1000,所以For的三個(gè)語句起始是100,終止是1000,最后一個(gè)是自加到1000,也就是語句中的num++,然后我們?nèi)粩?shù)有個(gè)、十、百,我們要讓三者的立方等于這個(gè)數(shù)字,就需要對(duì)個(gè)、十、百分別進(jìn)行定義,也就是sd(single digit)、td(tens digit)和hd(hundreds digit),那就如樓上所說hd是整型所以可以直接除100;td是num取除100的余數(shù)再除10;sd是num除10取余數(shù)。然后再是if語句,如果滿足則輸出,否則不輸出