- 論壇徽章:
- 0
|
編寫這么一個(gè)小程序:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char judge;
double money;
printf("請(qǐng)輸入顧客消費(fèi)金額> ");
scanf("%lf",&money);
printf("教師鍵入'y',非教師鍵入'n'> ");
for(;;)
{
scanf("%c",&judge);
if(judge=='y'||judge=='n')
break;
printf("顧客類型不正確,教師輸入'y',非教師輸入'n'> ");
}
if(judge=='y')
{
printf("總消費(fèi)金額為: %lf\n",money);
printf("折扣金額為(12%%): %lf\n",money*0.12);
printf("打折后金額為: %lf\n",money-money*0.12);
printf("征收的稅款額為(5%%): %lf\n",(money-money*0.12)*0.05);
printf("應(yīng)付金額為: %lf\n",money-money*0.12+(money-money*0.12)*0.05);
}
else
{
printf("總消費(fèi)金額為: %lf\n",money);
printf("征收的稅款額為(5%%): %lf\n",money*0.05);
printf("應(yīng)付金額為: %lf\n",money+money*0.05);
}
system("PAUSE");
return 0;
}
結(jié)果運(yùn)行時(shí)出現(xiàn)第二個(gè)printf和第三個(gè)printf語句同時(shí)執(zhí)行了,直接跳過了判斷是否為教師的輸入。效果如下:
請(qǐng)輸入顧客消費(fèi)金額>122
教師鍵入'y',非教師鍵入'n'>顧客類型不正確,教師輸入'y',非教師輸入'n'>
怎么回事呢?
當(dāng)我把第九行printf("教師鍵入'y',非教師鍵入'n'> "); 調(diào)到第六行下面,第十二行scanf("%c",&judge);緊接其后。
把for循環(huán)換成while循環(huán)時(shí)這個(gè)問題就沒有了,但是那樣輸入錯(cuò)誤時(shí)還會(huì)要求輸入價(jià)錢,不太好。
我用DEV c++編譯的。
麻煩各位幫忙看看,先謝謝了!
[ 本帖最后由 Quasimodo_lory 于 2009-8-27 16:31 編輯 ] |
|