這樣電腦看不懂嗎
{
? ? //定義三位數num,個位數sd,十位數td,百位數hd
? ? int num, sd, td, hd;
? ? //循環所有三位數
? ? for( ?num=100 ?; num<1000 ?; ?num++ ?)
? ? {
? ? ? ? //獲取三位數字num百位上的數字
? ? ? ? hd = ? ? (num-sd-10*td ?)/100 ? ? ? ? ;
? ? ? ? //獲取三位數字num十位上的數字
? ? ? ? td = ? ? (num-sd-100*hd) ?/10 ? ? ? ? ?;
? ? ? ? //獲取三位數字num個位上的數字
? ? ? ? sd = ? ? ?num-10*td-100*hd ? ? ? ? ? ;
? ? ? ? //水仙花數的條件是什么?
? ? ? ? if( num==hd*hd*hd+td*td*td+sd*sd*sd )?
? ? ? ? {
? ? ? ? ? ? printf("水仙花數字:%d\n", num); ? ?
? ? ? ? }
? ? }
? ? return 0; ? ?
}
2018-10-20
C語言的代碼運行是一條一條運行的,先運行hd語句,然后才是td,最后是sd,所以在hd中,寫入sd和td是錯誤的,此時sd和td還沒有值,不能進行運算。