輸出的結果包含一位數
#include?<stdio.h>
int?main()
{
????int?num,?sd,?td,?hd;
????for(num=100;num<1000;num++)
????{
????????hd?=num/100;
????????td?=(num%100)/10;
????????sd?=num%10;
????????if(num==hd*hd*hd+td*td*td+sd*sd*sd)?
????????{
????????????printf("水仙花數字:%d\n",?num);????
????????}
????}
????return?0;????
}如果第10行為?if(num=hd*hd*hd+td*td*td+sd*sd*sd) 輸出的數字中包含一位數的數字;
為什么會這樣?
2015-04-26
這是因為num=hd*hd*hd+td*td*td+sd*sd*sd為賦值語句即將hd*hd*hd+td*td*td+sd*sd*sd所得的結果賦值給num,而且賦值語句一般都是能成功的所以返回值為true,所以會進入if語句輸出num為一位數。例如第一次循環hd=1,td=0,sd=0,num=1,輸出結果為"水仙花數字:1"