c语言:模拟简单运算器的工作,加减乘除优先级一样
#include<stdio.h>
int main ()
{
int a,result;
char ch;
printf("Enter: ");
scanf("%d",&a);
result=a;
while((ch=getchar())!='=')
{
scanf("%d",&a);
if(ch=='+')
result=result+a;
if(ch=='-')
result=result-a;
if(ch=='*')
result=result*a;
if(ch=='/')
result=result/a;
}
printf("%d ",result);
return 0;
}
不明白问什么当我输入比如:1+2+3=时,输入完“=”时不会显示答案,而是再次敲入回车键时,才会显示答案。若把while中的条件‘=’改成‘ ’时,还是输入1+2+3,输入“回车键”时,直接显示答案,不用再次敲入回车键。帮忙解释一锤。
在c语言中,getchar()一定要输入回车后才能接收到字符的
而scanf("%d",&a);同样要你输入回车后才能接收数据的
但scanf不能接收数据后面的回车,必须由getchar()接收
当然输入完“=”时不会显示答案了。
你必须敲了换行符后才会把1+2+3=发送到缓冲区,scanf()才能开始读取呀
热门标签: