c语言四则运算oj,【小米OJ-四则运算】

fc61b537f75b3cd6d6bfbaf1ff57c2ec.png

import java.util.*;

public class Main {

public static void main(String args[]) {

Scanner scan = new Scanner(System.in);

String line;

while (scan.hasNextLine()) {

line = scan.nextLine().trim();

// please write your code here

System.out.println(Main.calculate(line));

}

}

private static String calculate(String s){

LinkedList list = new LinkedList();

char [] c = new char[s.length()+1];

for(int i=0;i

c[c.length-1] = ‘+‘;///为下面运算准备,当前运算符的运算要检测到下一个运算符才运算

int num=0;

char pre=‘X‘;///初始化

int temp;

boolean flag = false;

for(int i=0;i

if(c[i]==‘ ‘) continue;

if(flag) break;

if(c[i]>=‘0‘&&c[i]<=‘9‘) num = num*10+c[i]-‘0‘;///一位位地把数字符转换为数字

else{///,运算符进行运算的时间是在检测到下一个运算符才能运算

switch (pre){///这个运算符是之前的

case ‘+‘:

list.push(num);

break;

case ‘-‘:

list.push(num*(-1));

break;

case ‘*‘:

temp=(list.pop()*num);

list.push(temp);

break;

case ‘/‘:

if(num==0) {flag=true;break;}///分母为0

temp=(list.pop()/num);

list.push(temp);

break;

default:

list.push(num);

break;

}

pre = c[i];///存下当前的符号,为下一次运算

num=0;///num归0

}

}

if(flag) return "err";

int sum=0;

while(list.size()!=0) sum+=list.pop();

return sum+"";

}

}

原文:https://www.cnblogs.com/wszhu/p/12803055.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值