#include #include #include #include #include void Input(); void Output(); void Calculate(); void int rank(char *s); void Seperate_Token(); void double Calculate(double a, double b, double c); int len,line,pro; char input[size]; char input_oper[size]; char token[size][10]; int a,b; void Calculate()// ÁßÀ§½Ä->ÈÄÀ§½Ä { char input[30]; char output[30]=""; char stack[5]=""; int i=0,j=0,k=0; scanf("%s",input); len = strlen(input); while(i'0' && input[i] <'10') { output[k] = input[i]; k++; i++; } else if(input[i] == '+' || input[i] == '-' || input[i] == '*' || input[i] == '/') { if(j == 0) { stack[j] = input[i]; i++; j++; } else if(j == 1) { if(input[i] == '+' || input[i] == '-') { if(stack[j-1] == '+' || stack[j-1] == '-' || stack[j-1] == '*' || stack[j-1] == '/') { output[k] = stack[j-1]; stack[j-1] = input[i]; i++; k++;} } else if(input[i] == '*' || input[i] == '/') { if(stack[j-1] == '+' || stack[j-1] == '-') { if(input[i+1] >'0' && input[i+1] <'10') { if(input[i+2] == '*' || input[i+2] == '/') { output[k] = input[i+1]; k++; output[k] = input[i]; k++; i+=2; } else { output[k] = input[i+1]; k++; output[k] = input[i]; k++; output[k] = stack[j-1]; k++; i=i+2; strcpy(stack,""); j=0; } } } else if(stack[j-1] == '*' || stack[j-1] == '/') { output[k] = stack[j-1]; stack[j-1] = input[i]; k++; i++; } } } } } strcat(output,stack); printf("%s",output); } void Seperate_Token()//ÅäÅ«ºÐ¸® { char test; int i; for(i=0;i<=strlen(tok);i++) { test = pro[i]; if( (test >= '0' && test <= '9' || test == '.') ) token[a][b++]=test; else { if( (tok[i-1] >= '0' && tok[i-1 ]<= '9') || (tok[i-1] == '.') ) { token[a][b]='\0'; a++; b=0; } if(test==' ') continue; token[a][0] = test; token[a][1]= '\0'; a++; } } } void int rank(char *s)//¿ì¼±¼øÀ§ { if(s == NULL) return 4; switch(s[0]) { case '(': return 0; case '+': case '-': return 1; case '*': case '/': return 2; case ')': return 3; } return 4; } void double Calculate(double a, double b, double c)//°è»ê { switch (c) { case '+': return a+b; break; case '-': return a-b; break; case '*': return a*b; break; case '/': return a/b; break; } } void Input() { int i; printf("¼ö½ÄÀÔ·Â: "); gets(input); len = strlen(input); for(i = 0; i= '0' && input[i] <= '9' || input[i] == '.') { token[a][b] = input[i]; b++; } else if(input[i] == '(' || input[i] == ')' || input[i] =='+' || input[i] == '-' || input[i] == '*' || input[i] == '/') { } } } void main() { int n; printf("\n"); printf("\t1. ÀÔ·Â \n"); printf("\t2. Ãâ·Â \n"); printf("\t3. Á¾·á \n"); printf("¹øÈ£ÀÔ·Â:"); scanf("%d",&n); switch(n) { case 1: Input(); break; case 2: Output(); break; case 3: return 0; } } void Output() { }