C程序基本计算器

时间:2015-05-21 03:58:03

标签: c

#include<stdio.h>
int main()
{
    int a,b;
    char op;
    scanf("%d",&a);
    scanf("%c",&op);
    scanf("%d",&b);
    int w,x;
    w=a+b;
    x=a-b;

    switch(op)
    {
        case'+':
        {
            printf("%d",w);
            break;
        }
        case'-':
        {
            printf("%d",x);
            break;
        }
        default:
        {
            printf("Invalid");
            break;
        }
    }
    return 0;
}

每次我输入第二个输入 - 字符(+或 - ) - 它在切换情况下直接变为无效。我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

您的scanf序列并没有按照您的想法行事。在op之前打印switch的值,您就会发现问题。

答案 1 :(得分:1)

你的程序运行正常。您的问题在于输入:使用123+456而不是在小数和运算符之间按Enter键。

以下是您的计划示例:

$ ./basic 
456-123
333$ 

我建议在每个printf()格式字符串中添加\n以消除显示在同一行中的提示。