如果条件在c++中的用户定义函数内不起作用,

dgjrabp2  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(113)

我想检查字符变量(类型为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;
}
bvn4nwqk

bvn4nwqk1#

printf("   >Enter accomadation Basics :");
    scanf(" %c%*c",&boardType); 
printf("   >Enter Card Type(G,S,B)");
    scanf(" %c%*c",cardType);

感谢@ ′ Jonathan Leffler,我发现我的问题是scanf()函数留下了和字符,\n这就是为什么它不检查if条件或switch条件。我的scanf()函数应该如上所述进行更正,然后它将完美地工作

相关问题