#include <stdio.h>
int i, party;
char x = ' ';
float total = 0, perCost = 0;
main(){
switch (toupper(x)) {
case 'A':
printf("Combo A: Friend Chicken with slaw [price: 4.25]");
perCost = 4.24;
break;
case 'B':
printf("Combo B: Roast beef with mashed potato [price: 5.75]");
perCost = 5.75;
break;
case 'C':
printf("Combo A: Fish and chips [price: 5.25]");
perCost = 5.25;
break;
case 'D':
printf("Combo A: soup and salad [price: 3.74]");
perCost = 3.75;
break;
default:
perCost = 0;
break;
}
printf("Enter Party Total: ");
scanf("%d", &party);
for (i = 0; i < party; i++) {
printf("Enter item ordered [A/B/C/D/X]: ");
scanf("%c%*c", &x);
}
total = total + perCost;
printf("%f\n", total);
}
什么原因导致我的编程无法从switch语句中获取?
最佳答案
根据给定的代码,当执行第一次到达switch()
时,x
的值是' '
,因此通过执行switch()
给出perCost = 0
执行switch()
中的默认条件,使您相信程序din获取了switch()
(注意,执行再也不会回到这里)
为了达到你所期望的效果,在switch()
循环中给出for (i = 0; i < party; i++)
,特别是在scanf
下面。
注意total = total + perCost;
是错误的,到现在为止,它不会计算总数,而只给出您最后一个组合的perCost
,这也应该在循环中。
你的程序中需要一个#include <cctype.h>
。
关于c - 从For循环中获取Switch语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7898469/