zoukankan      html  css  js  c++  java
  • 习题2.1 简单计算器(20 分)浙大版《数据结构(第2版)》题目集

    模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

    输入格式:

    输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。

    输出格式:

    在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

    输入样例:

    1+2*10-10/2=
    

    输出样例:

    10
    

    代码:
    import java.util.Scanner;
    
    public class Main {
    
      public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = 0, b = 0;
        boolean flag = true;
        char ch = 0;
        String s;
        s = sc.nextLine();
        for(int i = 0;i < s.length();i ++)
        {
            if(s.charAt(i) >= '0' && s.charAt(i) <= '9')
            {
                b = s.charAt(i) - '0';
                while(s.charAt(i+1) >= '0' && s.charAt(i+1) <= '9')
                {
                    i++;
                    b *= 10;
                    b += s.charAt(i) - '0';
                }
                if(ch == 0)a = b;
                else
                {
                    if(ch == '+')a += b;
                    else if(ch == '-')a -= b;
                    else if(ch == '*')a *= b;
                    else if(ch == '/')
                    {
                        if(b == 0){flag = false; break;}
                        else a /= b;
                    }
                    else {flag = false;break;}
                }
            }
            else
            {
                if(s.charAt(i) == '=')break;
                ch = s.charAt(i);
            }
        }
        if(flag)System.out.print(a);
        else System.out.print("ERROR");
      }
    }
  • 相关阅读:
    清除图片周围的空白区域
    试题识别与生成
    需要继续研究
    工作中的必要举措
    教学云平台要求的硬件配置
    处理程序安装部署标准流程
    Node.js 回调函数
    git 学习
    在 Selenium 中让 PhantomJS 执行它的 API
    RF常用库简介(robotframework)
  • 原文地址:https://www.cnblogs.com/8023spz/p/7635608.html
Copyright © 2011-2022 走看看