m0_61890009 2021-12-07 10:30 采纳率: 95.5%
浏览 15
已结题

为什么要先输入一个result

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
输入样例:
1+2*10-10/2=
输出样例:
10
答案是
#include <stdio.h>

int main()
{
char ch = '0';
int result, i, flag = 0;
scanf("%d", &result);
while( ch != '=' )
{
scanf("%c", &ch);
if(ch == '=')
break;
scanf("%d", &i);
if( ch == '+' )
result += i;
else if( ch == '-' )
result -= i;
else if( ch == '*' )
result *= i;
else if( ch == '/' )
{
if( i != 0 )
result /= i;
else
flag = 1;
}
else
flag = 1;
}
if(flag)
printf("ERROR\n");
else
printf("%d", result);

return 0;

}

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-12-07 10:32
    关注

    代表第一个数据啊,比如输入样例的第一个1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程