你好,感謝觀看及參與。
else if在2.6節(jié)講過。
else換行后寫if為選擇結(jié)構(gòu)嵌套。
else if寫一行為多分支選擇結(jié)構(gòu)。
![]() ![]() 學(xué)習(xí)達人
|
hdylnpu
講師
展開
|
![]() ![]() 打卡Lv1
|
ljh52cn
展開
為什么算100的階乘就變0了?算20的階乘變負數(shù)。 |
![]() ![]() 學(xué)習(xí)達人
|
一定要學(xué)會C的石頭
展開
|
![]() ![]() 學(xué)習(xí)達人
|
Gangsheng87
展開
#include<stdio.h>
main()
{
int i,a,s;
printf("請輸入一個小于13的正整數(shù):");
scanf("%d",&a);
if(a<0)
printf("請輸入大于0的正整數(shù)\n");
else if(a==0)
printf("階乘值為 1");
else if(a<13)
{
i=1;s=1;
while(i<=a)
{
s*=i;
i++;
}
}
printf("階乘值為%d\n",s);
}
求問:我輸入-10,結(jié)果輸出如下:
請輸入大于0的正整數(shù)
階乘值為 1
???不明白為什么else if的(a==0)也執(zhí)行了,代碼和老師的一樣,但結(jié)果卻不同 ![]() hdylnpu
講師
展開
@ Gangsheng87 你好,核心問題是,要將最后的輸出做為 else if(a<13) 塊的語句,而不是整個程序的最后一條語句。 |
承擔因您的行為而導(dǎo)致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。