直接結(jié)束了。。。還有就是360問(wèn)答每個(gè)case語(yǔ)句后記著加上break跳出不過(guò)也有不過(guò)根據(jù)具體需要也可以不加break;但是你的這個(gè)程序需要加上break;
原因是:回車(chē)符也是字符,所以你按回后,程序以為是輸入了c的值了,而在輸入b值成功是因?yàn)?br />回車(chē)符不是數(shù)字形式的。
以下是我改過(guò)的程序,編譯運(yùn)行都很好的
#include
<stdio.h>
#include
<math.h>
void
main()
{
float
a,b;
char
c;
printf("\n
input
a:");
scanf("%f",&a);
printf("\n
input
b:");
scanf("%f",&b);
//這種情況經(jīng)常遇到。。。。輸入完后回車(chē)被下一個(gè)scanf("%c",&c)捕獲了。
//因?yàn)榛剀?chē)符也是字符,所以你按回車(chē)后,程序以為是輸入了c的值了
//所以加上下面一行,把回車(chē)符取走就可以了。。。。
getchar();
printf("\n
input
c:");
scanf("%c",&c);
//printf("\n%c",c);
switch(c)
{
case
'+':
printf("a+b=%f",a+b);break;
case
'-':
printf("a-b=%f",a-b);break;
case
'*':
printf("a*b=%f",a*b);break;
case
'/':
printf("a/b=%f",a/b);break;
default:
break;
}
//為了好看
printf("\n");
}