Switch语句模拟计算器五种运算

img


Switch语句模拟计算器的运算,请大家看看这个程序哪里出错了,麻烦高人指点,谢谢!!

我觉得应该是输入时错误了,我的编译器这样用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的定义方式试一下