小女子C语言输入遇到有关问题,真心求教,求好心哥哥解答

小女子C语言输入遇到问题,真心求教,求好心哥哥解答
题目要求:从键盘输入两个整数及一个运算符(加、减、乘、除), 求其结果并输出。
要求:分别使用switch语句和if语句两种方法实现。
小女子程序如下:
#include<stdio.h>
main()
{
int a,b,d;
char c;
printf("请输入两个整数\n");
scanf("%d%d",&a,&b);
printf("请输入一个字符\n");
scanf("%c",&c);
switch(c)
{
case '+':
d=a+b;
printf("%d + %d = %d\n",a,b,d);
break;
case '-':
d=a-b;
printf("%d - %d = %d\n",a,b,d);
break;
case '*':
d=a*b;
printf("%d * %d = %d\n",a,b,d);
break;
case '/':
d=a/b;
printf("%d /%d = %d\n",a,b,d);
default:
printf("输入无效\n");
break;



}
}

现在遇到的问题时,当我输入两个整数后,c的值已经有了。请问为什么?截图如下
小女子C语言输入遇到有关问题,真心求教,求好心哥哥解答
我还没输入字符,程序已经结束了
------解决方案--------------------
修改如下

printf("请输入两个整数\n");
scanf("%d  %d",&a,&b);
printf("请输入一个字符\n");
fflush(stdin);
scanf("%c",&c);

------解决方案--------------------
你的回车被当成了输入的字符
------解决方案--------------------
引用:
引用:你的回车被当成了输入的字符
我知道,但是为什么了,应该怎么解决了?一楼的方案我们还没学了。

加上fflush(stdin);刷新缓冲区
或者改成 

printf("请输入两个整数\n");
scanf("%d  %d",&a,&b);
scanf("%c",&c);
printf("请输入一个字符\n");
scanf("%c",&c);