我觉得应该是输入时错误了,我的编译器这样用scanf输入的话,a、b没有值成功输入,只能输入运算符。建议用以下方式输入,即先输入运算符,再输入操作数,最后在运算时在a或者b乘以1.0,将该计算转换为浮点数类型的计算
#include<stdio.h>
void main()
{
int a, b;
float s;
char x='0';
x=getchar();
getchar(); //获得输入x之后的换行符\n,以免影响a、b的输入
scanf_s("%d %d", &a,&b);
switch(x)
{
case'+': printf("%f", s = 1.0*a + b); break;
case'-': printf("%f", s = 1.0*a - b); break;
case'*': printf("%f", s = 1.0*a * b); break;
case'/': printf("%f", s = 1.0*a / b); break;
case'%': printf("%f", s = 1.0*a + b) ;break;
}
}
%的情况为什么是"s = a + b"?
如果不是这里,你把ab都换成float或者double的定义方式试一下