当前位置:文库下载 > 所有分类 > IT/计算机 > 计算机硬件及网络 > 四则运算器(带括号)
免费下载此文档侵权投诉

四则运算器(带括号)

找到bug请联系

#include<cstdio>
#include<iostream>
#include<memory.h>
using namespace std;
char c[100];
int vis[100];
int stack=0;
int head=0;
char ss[50];
int s[50];
int a1,a2;
int two(int a,int b,char c){
if(c=='+')return a+b;
if(c=='-')return a-b;
if(c=='*')return a*b;
if(c=='/')return a/b;
return 0;
}
int f(int a,int b){

int n=0;
char m;
a1=0,a2=0;
int i;
for(i=a;i<=b;i++){
if(c[i]>=48&&c[i]<58)s[a1++]=c[i]-'0';
if(c[i]>=42&&c[i]<=47)ss[a2++]=c[i];
if(a1==a2+1)
if(ss[a2-1]=='*'||ss[a2-1]=='/'){
a2--;
s[a1-2]=two(s[a1-2],s[a1-1],ss[a2]);
a1--;

}
c[i]=0;
}

int re=s[0];
a1=1;
for(int i=0;i<a2;i++){
re=two(re,s[a1++],ss[i]);}
c[a]=re+'0';
return re;
}
int main(){
cout<<"Input"<<endl;
for(int i=0;i<100;i++)c[i]=0;
cin>>c;


int head=0;
int stack[10];
for(int i=0;i<100;i++){
if(c[i]=='(')
stack[head++]=i;
if(c[i]==')')
f(stack[--head


],i);
}
cout<<"Output"<<endl;
cout<<f(0,100)<<endl;
cout<<"End"<<endl;
return 0;
}

第1页

免费下载Word文档免费下载:四则运算器(带括号)

(下载1-1页,共1页)

猜你喜欢

返回顶部