弄了一个统计税率的C语言,想要循环让用户多次输入,但不知道为什么循环一次之后就出错,而且退出也有问题

#include<stdio.h>
#define single 17850
#define holder 23900
#define marry 29750
#define divorce 14875
#define usually 0.15
#define out 0.28
int main(){
    char type;
    float salary;
    float tax,salary_tax;
    do{
        printf("1)Singer    2)Holder    3)Marry    ");
        printf("    4)Divorce    5)Leave\n");
        printf("Please select tax type.There are four type.\n");
        scanf("%c",&type);
        getchar();
        switch(type){
            case'1':
                printf("Please enter your salary:");
                scanf("%f",&salary);
                if(salary<=single){
                tax=salary*usually;
                salary_tax=salary-tax;
                }else{
                tax=single*usually+(salary-single)*out;
                salary_tax=salary-tax;
                }
                printf("your tax is %.2f and you salary_tax is %.2f\n ",tax,salary_tax);
                break;
            case'3':
                printf("Please enter your salary:");
                scanf("%f",&salary);
                if(salary<=marry){
                tax=salary*usually;
                salary_tax=salary-tax;    
                }else{
                tax=marry*salary+(salary-marry)*out;
                salary_tax=salary-tax;
                }
                printf("your tax is %.2f and you salary_tax is %.2f\n ",tax,salary_tax);
                break;
            case'2':
                printf("Please enter your salary:");
                scanf("%f",&salary);
                if(salary<=holder){
                tax=salary*usually;
                salary_tax=salary-tax;
                }else{
                tax=holder*usually+(salary-holder)*out;
                salary_tax=salary-tax;
                }
                printf("your tax is %.2f and you salary_tax is %.2f\n ",tax,salary_tax);
                break;
            case'4':
                printf("Please enter your salary:");
                scanf("%f",&salary);
                if(salary<=divorce){
                tax=salary*usually;
                salary_tax=salary-tax;
                }else{
                tax=divorce*usually+(salary-divorce)*out;
                salary_tax=salary-tax;
                }
                printf("your tax is %.2f and you salary_tax is %.2f\n ",tax,salary_tax);
                break;
            case'5':
                break;
            default:
                printf("Error ,Please try again:\n");
                break;    
        }
    }while(type!=5);
    printf("Done");
    return 0;
}
 

scanf和getchar只要一个就好了