程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-這段程序問題在哪裡,編譯後的結果讓我很費解

c語言-這段程序問題在哪裡,編譯後的結果讓我很費解

編輯:編程解疑
這段程序問題在哪裡,編譯後的結果讓我很費解

#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;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved