c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
上面代碼有誤,本來switch語句是接收int型的,有死循環(huán);有人建議改成接收字符,上面沒改完全,現(xiàn)在改完全了,但是會重復輸出,輸出如下
*** ACME checkbook-balancing program ***
Commands: a=clear, b=credit, c=debit, d=balance, e=exit
Enter command: b
Enter amount of credit: 10000
Enter command: Commands: a=clear, b=credit, c=debit, d=balance, e=exit
Enter command: d
Current balance: $10000.00
Enter command: Commands: a=clear, b=credit, c=debit, d=balance, e=exit
Enter command: 0
Commands: a=clear, b=credit, c=debit, d=balance, e=exit
Enter command: Commands: a=clear, b=credit, c=debit, d=balance, e=exit
Enter command:
代碼如下:
/* Balances a checkbook */
#include
int main(void)
{
char cmd;
float balance = 0.0f, credit, debit;
printf("*** ACME checkbook-balancing program ***\n");
printf("Commands: a=clear, b=credit, c=debit, ");
printf("d=balance, e=exit\n\n");
for (;;) {
printf("Enter command: ");
cmd = getchar();
switch (cmd) {
case 'a':
balance = 0.0f;
break;
case 'b':
printf("Enter amount of credit: ");
scanf("%f", &credit);
balance += credit;
break;
case 'c':
printf("Enter amount of debit: ");
scanf("%f", &debit);
balance -= debit;
break;
case 'd':
printf("Current balance: $%.2Lf\n",balance);
break;
case 'e':
return 0;
default:
printf("Commands: a=clear, b=credit, c=debit, ");
printf("d=balance, e=exit\n\n");
break;
}
}
}
總結
以上是生活随笔為你收集整理的c语言死循环中输入字符,如下代码,如果输入字符,为什么会造成死循环?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gensim提取一个句子的关键词_聊一聊
- 下一篇: JAVA入门级教学之(final关键字)