关于scanf与%c,%d的问题
请问为什么我前一段代码%d %d %c可以正常运行,而后一段代码会陷入死循环?
正确代码
#include<stdio.h>
int main()
{
int m,n;
char ch;
while(1)
{
scanf("%d %d %c",&m,&n,&ch);//注意点!!
if(m==0 && n==0)
break;
else
switch(ch)
{
case '+':
printf("%d\n",m+n);
break;
case '-':
printf("%d\n",m-n);
break;
case '*':
printf("%d\n",m*n);
break;
case '/':
if(n!=0)
{printf("%d\n",m/n);
break;}
else
printf("Error\n");
break;
case '%' :
printf("%d\n", m%n);
break;
default:
printf("Error\n");
break;
}
}
}
错误代码:
#include<stdio.h>
int main()
{
int m,n;
char ch;
while(1)
{
scanf("%d%d%c",&m,&n,&ch);//错误点!!!
if(m==0 && n==0)
break;
else
switch(ch)
{
case '+':
printf("%d\n",m+n);
break;
case '-':
printf("%d\n",m-n);
break;
case '*':
printf("%d\n",m*n);
break;
case '/':
if(n!=0)
{printf("%d\n",m/n);
break;}
else
printf("Error\n");
break;
case '%' :
printf("%d\n", m%n);
break;
default:
printf("Error\n");
break;
}
}
}