这个怎么用y和n来判断是否继续循环啊,除了n,我输入任何东西都可以循环

#include<stdio.h>
#include<stdlib.h>
int main()
{
float a,b;
char c;
while(c!='n')
{
printf("请输入x的值:");
scanf("%f",&a);
switch(a>=0&&a<20?1:a>=20&&a<50?2:a>=50&&a<60?3:a>=60?4:0)
{ case 1:printf("%f",10+a);break;
case 2:printf("%f",30);break;
case 3:printf("%f",30-3*(a-50));break;
case 4:printf("%f",0);break;
default:printf("输入错误\n");break;
}
printf("\n是否继续?\t是:选;\t否;选!\n请选择:");
getchar();
scanf("%c",&c);
system("cls");
}
return 0;
}

变量c没有初始化,根本无法进入while里面吧

修改如下,供参考:

#include<stdio.h>
#include<stdlib.h>
int main()
{
   int  a,b;
   char c = 'y';
   while(c=='y')
   {
       printf("请输入x的值:");
       scanf("%d",&a);
       b = (a>=0&&a<20)?1:((a>=20&&a<50)?2:((a>=50&&a<60)?3:(a>=60?4:0)));
       switch(b)
       {
             case 1:printf("%f",(float)10+a);break;
             case 2:printf("%f",(float)30);  break;
             case 3:printf("%f",(float)30-3*(a-50));break;
             case 4:printf("%f",(float)0);break;
            default:printf("输入错误\n"); break;
       }
       do{
          printf("\n是否继续?\t是:选 'y';\t否;选 'n'\n请选择:");
          getchar();
          scanf("%c",&c);
       }while(c != 'y' && c != 'n');
       system("cls");
   }
   return 0;
}