vvhungtam
Tổng số bài gửi : 11 Registration date : 16/09/2007
| Tiêu đề: Chuyen Bieu Thuc Hau To Sang ChungTo 18/5/2008, 16:29 | |
| Bai Nay Minh chua hoang thanh ban nao biet xin hoang thanh giup minh nha! - Code:
-
#include <iostream> #include <string> using namespace std;
int DoUuTien(char ch) { int i; switch (ch) { case '+': case '-': i=1;break; case '*': case '/': i=2;break; case '^': i=3;break; default:i=0;break; } return i; } void HauTo(char* s1,char* s2) { char stack[100],x,*tam=new char;strcpy(tam,""); //stack=new char;tam=new char; int top=-1,index=-1; strcpy(tam,s2);strcpy(s2,"");cout<<tam<<endl; stack[++top]=tam[0]; int k=1; while(top>-1) { x=tam[k]; switch(x) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': s2[++index]=x;break; case '(': stack[++top]=x;break; case '+': case '-': case '*': case '/': while(stack[top]!='(') { if(DoUuTien(stack[top])>=DoUuTien(x)) s2[++index]=stack[--top]; else break; } stack[++top]=x;break; case ')': while(stack[top]!='(') s2[++index]=stack[--top]; top--;break; } s2[++index]=' '; k++; } } void main() { char* s1=new char; char* s2=new char;strcpy(s2,""); cout<<"nhap bieu thuc: ";cin>>s1;strcat(strcat(strcat(s2,"("),s1),")"); HauTo(s1,s2); cout<<s2; }
| |
|