for循環二,哪里錯了??
{
? ? //定義三位數num,個位數sd,十位數td,百位數hd
? ? int num, sd, td, hd;
? ? //循環所有三位數
? ? for(num=100;num<1000;num++)
? ? {
? ? ? ? //獲取三位數字num百位上的數字
? ? ? ? hd=(num-sd-td*10)/100 ? ;
? ? ? ? //獲取三位數字num十位上的數字
? ? ? ? td=(num-hd*100-sd)/10;
? ? ? ? //獲取三位數字num個位上的數字
? ? ? ? sd=num-hd*100-td*10 ;
? ? ? ? //水仙花數的條件是什么?
? ? ? ? if(num==sd*sd*sd+hd*hd*hd+td*td*td)?
? ? ? ? {
? ? ? ? ? ? printf("水仙花數字:%d\n", num); ? ?
? ? ? ? }
? ? }
? ? return 0; ? ?
}
2016-03-14
你定義的sd,td,hd都是沒有賦初值的,所以在for語句中你是用的這三個變量的值均是不定值,自然不會得到你想要的結果。sd,td,hd應該如下進行:
hd=num/100;
td=num/10%10;
sd=num%10;
這樣就對了