為什么運行結(jié)果這樣
#include <stdio.h>
int main(){
? ? int i;
? ? int a,b,c;
? ? for(i=100;i<1000;i++){
? ? ? a = i/100;
? ? ? b = (i-a*100)/10;
? ? ? c = i-a*100-b*10;
? ? ? if(i = a*a*a+b*b*b+c*c*c){
? ? ? ? ? printf("水仙花數(shù)字:%d\n",i);
? ? ? }
? ? }
? ? return 0;
}
運行成功,輸入錯誤
水仙花數(shù)字:1
水仙花數(shù)字:8
水仙花數(shù)字:729
水仙花數(shù)字:370
水仙花數(shù)字:371
水仙花數(shù)字:378
水仙花數(shù)字:1099
2017-12-07
把if(i = a*a*a+b*b*b+c*c*c)改成if(i == a*a*a+b*b*b+c*c*c)就可以了。因為“=”是賦值,“==”是判斷是否等價,于是:
第一次(i=100,a=1,b=c=0,if中(i=1*1*1+0*0*0+0*0*0),即i為1(非0),執(zhí)行printf輸出i此時的值(1)
之后i加1,所以
第二次(i=2,a=2,b=c=0,if中(i=2*2*2+0*0*0+0*0*0),即i為8(非0),執(zhí)行printf輸出i此時的值(8)
?之后i加1,所以
第三次(i=9,a=9,b=c=0,if中(i=9*9*9+0*0*0+0*0*0),即i為729(非0),執(zhí)行printf輸出i此時的值(729)
以此類推,直到進(jìn)行加1后i不滿足循環(huán)條件(即i不小于1000),所以輸出1099后結(jié)束循環(huán)。
2017-12-07
在輸出框前的判斷框加&&i>=100
2017-12-07
。。。。。。。。。。。。。。。。。。。。。。。。