您的位置:首页 > 其它

九度OJ题目1101:计算表达式

2017-04-11 22:06 399 查看
题目1101:计算表达式

时间限制:1 秒

内存限制:32 兆

特殊判题:

题目描述:
对于一个不存在括号的表达式进行计算

输入:
存在多种数据,每组数据一行,表达式不存在空格

输出:
输出结果

样例输入:
6/2+3+3*4

样例输出:
18

来源: 2010年上海交通大学计算机研究生机试真题 
#include "stdio.h"

#define MAX 100

int stack[MAX];//定义数组
int tail;

int main(){
int a;
while(scanf("%d",&a)!=EOF){ //输入数值
tail=0;

stack[0]=0;
stack[++tail]=a;//入栈
char ch1;
while(scanf("%c",&ch1)!=EOF&&(ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/')){ //输入符号
scanf("%d",&a);
if(ch1=='+'){ //"+"
stack[++tail]=a;
}else if(ch1=='-'){ //"-"
stack[++tail]=-1*a;
}else if(ch1=='*'){ //"*"
stack[tail]=stack[tail]*a;
}else if(ch1=='/'){ //"/"
stack[tail]=stack[tail]/a;
}

}
for(int i=1;i<=tail;i++)
stack[0]+=stack[i];
printf("%d\n",stack[0]); //输出结果
}

}

/**************************************************************
Problem: 1101
User: zpy
Language: C++
Result: Accepted
Time:0 ms
Memory:1020 kb
****************************************************************/


                              
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: