我是c语言的新手,我想制作一个计算器,所以我写了这段代码:
#include<stdio.h>
void main()
{
int x,y,z;
char m;
printf("enter the first number");
scanf("%d",&x);
printf("enter the second number");
scanf("%d",&y);
printf("enter the math operator");
scanf("%c",&m);
if (m == '+')
{
z=x+y;
printf("the answer is %d",z);
}
else if(m == '-')
{
z=x-y;
printf("the answer is %d",z);
}
else
{
printf("wrong symbol");
}
}
当我运行程序时,它会忽略
scanf("%c",&m);
和
if (m == '+')
{
z=x+y;
printf("the answer is %d",z);
}
else if(m == '-')
{
z=x-y;
printf("the answer is %d",z);
}
它将直接进入
else
{
printf("wrong symbol");
}
它显示如下:https://i.imgur.com/QQF8ftg.jpg 请帮忙。
答案 0 :(得分:0)
您只需要刷新流条目stdin,因为当您调用scanf("%c",&m);
时,某些char仍然在stdin中。因为它只查找一个char ...它直接获取stdin中的第一个char('\n'
)。
在调用scanf之前插入此可移植代码以刷新stdin:
int c;
while((c = getchar()) != '\n' && c != EOF);
希望这有帮助!