我是 C 语言的新手,我的代码遇到了一些问题。我必须编写一个程序来计算租车的价格,但 while 循环无法正常运行。while 条件上方的 scanf 是 %s而不是 %c,因为当它是 %c 时它不会让我给出一个字符。提前谢谢你。
int main(){
float skms, ekms, tkms, price;
char catcode;
int days;
do{
printf("Selected rental program:\n");
scanf("%c",&catcode);
printf("Enter number of days:\n");
scanf("%d",&days);
printf("Starting kilometers display:\n");
scanf("%f",&skms);
printf("Kilometers display at end of rent:\n");
scanf("%f",&ekms);
tkms=(ekms/10)-(skms/10);
switch(catcode){
case'a':
case'A':
price=ammountDueA(days, tkms);
printf("%.2f\n",price);
break;
case'b':
case'B':
price=ammountDueB(days, tkms);
printf("%.2f\n",price);
break;
case'c':
case'C':
price=ammountDueC(days, tkms);
printf("%.2f\n",price);
}
printf("Select rental program.('Q' or 'q' to exit)\n");
scanf("%s",&catcode);
}while(catcode==!'Q'&&catcode==!'q');
printf("%c",catcode);
return 0;
}
最佳答案
“不工作”,我想你的意思是它永远不会进入第二次迭代,但这正是它应该做的。 catcode==!'Q'&&catcode==!'q'
如果 catcode
为真等于!'Q'
等于!'q'
. 'Q'
是一些非零整数(取决于您的系统,但可能是 81),并且 !'Q'
为零。同样,!'q'
为零。 catcode
不为零,因此循环终止。
关于c - 为什么 while 循环不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33583538/