跪求同學(xué) 大神解答,我實在是找不出來哪錯了
#include <stdio.h>
int main()
{
? ? //定義三位數(shù)num,個位數(shù)sd,十位數(shù)td,百位數(shù)hd
? ? int num, sd, td, hd;
? ? //循環(huán)所有三位數(shù)
? ? for(num=100;num<=999;num++)
? ? {
? ? ? ? //獲取三位數(shù)字num百位上的數(shù)字
? ? ? ? hd =num/100 ? ? ? ? ? ? ? ? ;
? ? ? ? //獲取三位數(shù)字num十位上的數(shù)字
? ? ? ? td =num%100/10 ? ? ? ? ;
? ? ? ? //獲取三位數(shù)字num個位上的數(shù)字
? ? ? ? sd =num%10 ? ? ? ? ;
? ? ? ? //水仙花數(shù)的條件是什么?
? ? ? ? if(num==hd*hd*hd+td*td*td+sd*sd*sd);?
? ? ? ? {
? ? ? ? ? ? printf("水仙花數(shù)字:%d\n", num); ? ?
? ? ? ? }
? ? }
? ? return 0; ? ?
}
為什么最后的答案是100 101 102 103……999,不是水仙花數(shù)字。。。。到底哪錯了額?
2015-12-08
哎!我就不多說了,看看你的代碼if()后面加一個分號導(dǎo)致你的printf不是if里面的語句而是for語句所以他會全部輸出,去交if后面的分號試試!
2015-12-08
td =num%100/10 ? ? ? ? ;
這段代碼錯了,因為"%"的優(yōu)先級小于“/”
正確的寫法是td =(num%100)/10 ? ? ? ? ;