#include
#include
int main()
{
float x,y,z,k;
char s,q;
printf("請輸入加油量:\n");
scanf("%f",&x);
printf("請輸入服務類型:\n");
printf("a.自己加\n");
printf("b.自助加\n");
scanf("%c",&s);
switch(s)
{
case 'a':
z=0.95;
break;
case 'b':
z=0.9;
break;
default:
printf("error");
}
printf("請輸入汽油品種:\n");
scanf("%c",&q);
switch(q)
{
case 'a':
y=3.25;
break;
case 'b':
y=3.00;
break;
case 'c':
y=2.75;
}
k=x*y*z;
printf("所購汽油價格:%f\n",k);
Sleep(10000);
return 0;
}
這樣就好了,scanf讀取的是緩存區的字符,你上一個scanf輸入的最後會有\n,就直接被下一個scanf讀取了
#include <stdio.h>
int main()
{
float x,y,z,k;
char s,q;
printf("請輸入加油量:\n");
scanf("%f",&x);
fflush(stdin);
printf("請輸入服務類型:\n");
printf("a.自己加\n");
printf("b.自助加\n");
scanf("%c",&s);
fflush(stdin);
switch(s)
{
case 'a':
z=0.95;
break;
case 'b':
z=0.9;
break;
default:
printf("error");
}
printf("請輸入汽油品種:\n");
scanf("%c",&q);
switch(q)
{
case 'a':
y=3.25;
break;
case 'b':
y=3.00;
break;
case 'c':
y=2.75;
}
k=x*y*z;
printf("所購汽油價格:%f\n",k);
return 0;
}