以下代码用于模块化计算器问题。输入数据为:
5 +3 * 7 +10 * 2 * 3 +1 %11
#include <stdio.h>
int main(void) {
char oper;
int number,result;
scanf("%d",&number);
result=number;
do
{
oper=getchar();
fflush(stdin);
scanf("%d",&number);
if(oper=='+')
{
result=result+number;
}
else if(oper=='*')
{
result=result*number;
}
printf("%c %d %d ",oper,number,result);
}while(oper!='%');
result=result%number;
printf("%d",result);
return 0;
}
我得到的输出如下:
3 5
3 5 * 7 35
10 35
10 35 * 2 70
2 70 * 3 210
1 210
1 210 % 11 210 1
我似乎无法弄清楚为什么?
代替
oper=getchar();
fflush(stdin);
scanf("%d",&number);
和
scanf(" %c", &oper);
scanf("%d", &number);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句