南阳oj 表达式求值 题目305 数据结构
2015-07-27 10:06
246 查看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>//头文件包含遇到字母,数字函数
#define N 1001
using namespace std;
char ch1
;//数组模拟栈进行计算
double ch2
;
double ji(char a,int m,int n)
{
char x='d',y='a',z='i';
if(a==x) return (m+n);
if(a==y) return m>n?m:n;
if(a==z) return m<n?m:n;
}
void sum()
{
char s[300],a[5],b;
scanf("%s",s);
int k,l,top1=-1,top2=-1;
double m,n;
k=strlen(s);
for(int i=0;i<k;)
{
if(isalpha(s[i]))//判断s[i]是否是字符
{
top1++;
ch1[top1]=s[i+1];//只需知道中间的字母即可
i+=4;//把(号也跳过去了
}
else if(isdigit(s[i]))//判断s[i]是否是数字
{
l=0;
while(isdigit(s[i]))
{
a[l]=s[i];
l++;
i++;
}
a[l]='\0';
top2++;
ch2[top2]=atof(a);
}
else if(s[i]==')')
{
m=ch2[top2];
top2--;
n=ch2[top2];
top2--;
b=ch1[top1];
top1--;
top2++;
ch2[top2]=ji(b,m,n);
i++;
}
else i++;//遇到,号也跳过
}
printf("%.0lf\n",ch2[top2]);
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
sum();
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>//头文件包含遇到字母,数字函数
#define N 1001
using namespace std;
char ch1
;//数组模拟栈进行计算
double ch2
;
double ji(char a,int m,int n)
{
char x='d',y='a',z='i';
if(a==x) return (m+n);
if(a==y) return m>n?m:n;
if(a==z) return m<n?m:n;
}
void sum()
{
char s[300],a[5],b;
scanf("%s",s);
int k,l,top1=-1,top2=-1;
double m,n;
k=strlen(s);
for(int i=0;i<k;)
{
if(isalpha(s[i]))//判断s[i]是否是字符
{
top1++;
ch1[top1]=s[i+1];//只需知道中间的字母即可
i+=4;//把(号也跳过去了
}
else if(isdigit(s[i]))//判断s[i]是否是数字
{
l=0;
while(isdigit(s[i]))
{
a[l]=s[i];
l++;
i++;
}
a[l]='\0';
top2++;
ch2[top2]=atof(a);
}
else if(s[i]==')')
{
m=ch2[top2];
top2--;
n=ch2[top2];
top2--;
b=ch1[top1];
top1--;
top2++;
ch2[top2]=ji(b,m,n);
i++;
}
else i++;//遇到,号也跳过
}
printf("%.0lf\n",ch2[top2]);
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
sum();
}
return 0;
}
相关文章推荐
- 数据结构与算法-如何计算时间复杂度
- 数据结构与算法-如何计算时间复杂度
- 【数据结构】3、模拟银行窗口排队叫号系统——C++
- 操作系统重要数据结构
- 数据结构基础温故-5.图(中):图的遍历算法
- 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
- 数据结构-两栈共享空间
- 数据结构-栈的链式存储结构
- 数据结构-队列顺序结构的实现和操作
- 数据结构-队列的链式存储实现操作
- 数据结构图小结
- 数据结构之选择排序--简单选择排序
- 找到单项链表中间那个元素,如果有两个则取前面一个
- 【数据结构】2、汉诺塔
- 课程笔记 14:数据结构(清华) 二叉树-遍历
- 【数据结构】1、串的模式匹配算法
- 算法和数据结构
- 数据结构:图 (总结)
- java数据结构------二叉树
- 数据结构和算法(Java版本)