我想检查字符变量(类型为a_basis)是否等于H或F,以便为total变量赋值,但如果条件在定义的函数中不起作用,则输出的total值始终为0.00000
我试着先检查int变量,然后再检查char,但结果是一样的。参数完美地传递到函数中,但条件语句不工作
#include<stdio.h>
double calculate(int typeOfRoom, char a_basis){
double total;
if (typeOfRoom==1){
if(a_basis=='F' || a_basis=='f'){
total = 25555.00;
}
else if(a_basis=='H' || a_basis=='h'){
total = 17250.00;
}
}
else if (typeOfRoom==2){
if(a_basis=='H' || a_basis=='h'){
total = 17500.00;
}
else if(a_basis=='F' || a_basis=='f'){
total = 12250.00;
}
}
else if (typeOfRoom==3){
if(a_basis=='F' || a_basis=='f'){
total = 9000.00;
}
else if(a_basis=='F' || a_basis=='f'){
total = 7250.00;
}
}
return total;
}
int main(void){
int typeOfRoom,no_days;
char crd_type;
char a_basis;
double total;
while(typeOfRoom !=(-1)){
printf("Enter Room type :");
scanf("%d",&typeOfRoom);
printf("Enter Accommodation Basis (F/H) :");
scanf("%c%*c",&a_basis);
total = calculate(typeOfRoom,a_basis);
printf("%lf",total);
}
return 0;
}
1条答案
按热度按时间bvn4nwqk1#
感谢@ ′ Jonathan Leffler,我发现我的问题是scanf()函数留下了和字符,\n这就是为什么它不检查if条件或switch条件。我的scanf()函数应该如上所述进行更正,然后它将完美地工作