#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;
}
每次我输入第二个输入 - 字符(+或 - ) - 它在切换情况下直接变为无效。我在这里做错了什么?
答案 0 :(得分:1)
您的scanf
序列并没有按照您的想法行事。在op
之前打印switch
的值,您就会发现问题。
答案 1 :(得分:1)
你的程序运行正常。您的问题在于输入:使用123+456
而不是在小数和运算符之间按Enter键。
以下是您的计划示例:
$ ./basic
456-123
333$
我建议在每个printf()格式字符串中添加\n
以消除显示在同一行中的提示。