简单赋值语句
来源:互联网 发布:linux 套接字文件 编辑:程序博客网 时间:2024/05/20 16:41
#include<stdio.h> #include<stdlib.h> #define MAX 100 void SET_Mul_Div(int i,int m); void SET_Add_Sub(int j,int m); void print();int m=0; int count=0; char tempvar='A'; char string[MAX]; //用于存放表达式 //用于更改计算后数组中的值void change(int e){int f=e+2;char ch=string[f];if(ch>='A'&&ch<='Z'){for(int l=0;l<m+10;l++){if(string[l]==ch)string[l]=tempvar;}}if(string[e]>='A'&&string[e]<='Z'){for(int i=0;i<m;i++){if(string[i]==string[e])string[i]=tempvar;}}}void SET_Mul_Div(int i,int m) //处理乘除运算 { for(i++;i<=m-1;i++) { if(string[i]=='*'||string[i]=='/') { printf("(%c %c %c %c)\n",string[i],string[i-1],string[i+1], tempvar); change(i-1);string[i-1]=string[i]=string[i+1]=tempvar; count--; tempvar=(char)(int)tempvar++; } } } void SET_Add_Sub(int j,int m) //处理加减运算{ j++; for(;j<=m-1;j++) { if(string[j]=='+'||string[j]=='-') { printf("(%c %c %c %c)\n",string[j],string[j-1],string[j+1],tempvar);change(j-1);string[j-1]=string[j]=string[j+1]=tempvar; count--; tempvar=(char)(int)tempvar++; } } } /*打印*/ void print() { int i,j,k; for(i=0;i<=m-1;i++)//处理乘除运算 { if(string[i]=='*'||string[i]=='/') { printf("(%c %c %c %c)\n",string[i],string[i-1],string[i+1],tempvar); change(i-1);string[i-1]=string[i]=string[i+1]=tempvar; count--; tempvar=(char)(int)tempvar++;}} //int j; for(j=0;j<=m-1;j++)//处理加减运算 { if(string[j]=='+'||string[j]=='-') { printf("(%c %c %c %c)\n",string[j],string[j-1],string[j+1],tempvar); change(j-1);string[j-1]=string[j]=string[j+1]=tempvar; count--; tempvar=(char)(int)tempvar++; } } //int k; for(k=0;k<=m-1;k++) //处理赋值运算 { if(string[k]=='=') { tempvar=(char)(int)--tempvar; printf("(%c %c %c) \n",string[k],string[k+1], string[k-1],tempvar); count--; change(k+1);string[k-1]=tempvar; } } }int main(){ int p[MAX]; char ch; int c=-1,q=0; printf("请输入赋值语句:\n"); while((ch = getchar())!='\n') { string[m++]=ch; if(ch=='='||ch=='+'||ch=='-'||ch=='*'||ch=='/') count++; else if(ch=='(') { p[++c]=m-1; } else if(ch==')') { q=m-1; SET_Mul_Div(p[c],q); //从左括号处理到又括号 SET_Add_Sub(p[c],q); tempvar=(char)(int)tempvar--; string[p[c]]=string[m-1]=tempvar; c--; tempvar=(char)(int)tempvar++; } } /********调用生成四元式的函数********/ print(); /*********判断是否成功**********/ if(count==0) printf("Successful!\n"); else printf("Wrong!"); printf("\n"); system("pause"); }
1 0
- 简单赋值语句
- 简单赋值语句的逆向
- 赋值语句
- [Swift] 输出语句 简单赋值 转换类型 数组 字典
- 语句: 运算符 赋值语句
- i++与赋值语句
- C++赋值语句讲解
- 赋值语句1
- 赋值语句2
- 赋值语句的运用
- Verilog中几种赋值语句
- Ruby赋值语句中的||
- 3.3、C++赋值语句
- 有效的赋值语句
- Matlab赋值语句
- jinja2 赋值语句
- Verilog赋值语句
- Scala 赋值语句
- GitHub控件之BadgeView(数字提醒)
- Java工程师成神之路
- 日经春秋 20151229
- eclipse上Git的安装和使用
- 【ASP.NET 基础】表单和控件
- 简单赋值语句
- mysql中Where条件中字段顺序的重要性
- javascript面向对象编程
- NSA HELPED BRITISH SPIES FIND SECURITY HOLES IN JUNIPER FIREWALLS
- iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
- Jquery可编辑table
- Android:onNewIntent()触发机制及注意事项
- ios捕捉奔溃日志
- MYSQL 储存过程 用户登录更新token创建时间,过期时间,账户是否冻结