UVa 327 - Evaluating Simple C Expressions
来源:互联网 发布:java int长度是多少 编辑:程序博客网 时间:2024/05/16 13:52
按理说应该是一个二叉树的题,许久以前用数组做的 ~
代码如下:
#include<stdio.h>#include<string.h>char m[33][33];int main(){#ifdef wct freopen("sample.txt","r",stdin);#endif char m[150],a[150],b[30],flag[100]; int value,i,j,len,count,flagnum,num[30],numval[30]; while(gets(m)!=NULL) { value=flagnum=count=0; memset(b,0,sizeof(b)); memset(a,0,sizeof(a)); memset(flag,0,sizeof(flag)); len=strlen(m); for(i=0; i<len; i++) if(m[i]!=' ') a[count++]=m[i]; count=0; len=strlen(a); for(i=0; i<len; i++) { if(a[i]>='a'&&a[i]<='z') { b[count]=a[i]; num[count]=a[i]-'a'+1; numval[count++]=a[i]-'a'+1; if(a[i+1]=='+'&&a[i+2]=='+') { num[count-1]++; i+=2; } else if(a[i-1]=='+'&&a[i-2]=='+') { num[count-1]++; numval[count-1]++; } if(a[i+1]=='-'&&a[i+2]=='-') { num[count-1]--; i+=2; } else if(a[i-1]=='-'&&a[i-2]=='-') { num[count-1]--; numval[count-1]--; } } if(a[i]=='+') { if((a[i+2]=='-'&&a[i+1]=='-'&&(a[i-1]>='a'&&a[i-1]<='z'))||(a[i-2]=='-'&&a[i-1]=='-'&&(a[i+1]>='a'&&a[i+1]<='z'))) flag[flagnum++]='+'; else if((a[i+1]=='-'&&a[i-1]=='-')||(a[i+1]=='+'&&a[i-1]=='+')) flag[flagnum++]='+'; else if((a[i+2]=='-'&&a[i+1]=='-'&&a[i-1]=='+')||(a[i+2]=='+'&&a[i+1]=='+'&&a[i-1]=='-')) flag[flagnum++]='+'; else if((a[i-1]>='a'&&a[i-1]<='z')&&(a[i+1]>='a'&&a[i+1]<='z')) flag[flagnum++]='+'; } if(a[i]=='-') { if((a[i+2]=='+'&&a[i+1]=='+'&&(a[i-1]>='a'&&a[i-1]<='z'))||(a[i-2]=='+'&&a[i-1]=='+'&&(a[i+1]>='a'&&a[i+1]<='z'))) flag[flagnum++]='-'; else if((a[i+1]=='-'&&a[i-1]=='-')||(a[i+1]=='+'&&a[i-1]=='+')) flag[flagnum++]='-'; else if((a[i+2]=='-'&&a[i+1]=='-'&&a[i-1]=='+')||(a[i+2]=='+'&&a[i+1]=='+'&&a[i-1]=='-')) flag[flagnum++]='-'; else if((a[i-1]>='a'&&a[i-1]<='z')&&(a[i+1]>='a'&&a[i+1]<='z')) flag[flagnum++]='-'; } } value+=numval[0]; j=1; for(i=0; i<flagnum; i++) if(flag[i]=='+') value+=numval[j++]; else if(flag[i]=='-') value-=numval[j++]; printf("Expression: %s\n",m); printf(" value = %d\n",value); for(j=0; j<=25; j++) for(i=0; i<count; i++) if(b[i]=='a'+j) printf(" %c = %d\n",b[i],num[i]); } return 0;}
- UVa 327 Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- uva 327 Evaluating Simple C Expressions
- 数据结构 uva-327-Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- uva 327--Evaluating Simple C Expressions
- uva 327 Evaluating Simple C Expressions
- UVa 327 Evaluating Simple C Expressions (模拟)
- uva 327 - Evaluating Simple C Expressions
- uva 327 - Evaluating Simple C Expressions
- UVa 327 - Evaluating Simple C Expressions
- UVA 327 Evaluating Simple C Expressions
- UVA - 327 Evaluating Simple C Expressions
- UVA 327 - Evaluating Simple C Expressions
- SAAS和PAAS之浅见
- UVa 699 - The Falling Leaves
- 对易宝支付的认识与总结
- iOS MBMapkit
- POJ 2392 Space Elevator (多重背包)
- UVa 327 - Evaluating Simple C Expressions
- javascrpt的this与$(this)
- 数据结构--数组--对称矩阵的建立
- liunx常用命令备忘
- 浅谈如何留住用户
- 使用SCP拷贝文件
- 设置IE兼容模式
- [Windows驱动开发](二)基础知识——数据结构
- 网页如何防止刷新重复提交与如何防止后退的解决方法