fork download
  1. #include <stdio.h>
  2. #include <stack>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int i,t,j;
  8. char ans[1000],str[1000];
  9. stack<char> s;
  10. scanf("%d", &t);
  11. scanf(" ");
  12. for(j=0;j<t;j++){
  13. for(i=0,gets(str);str[0];gets(str)){
  14. if(47<str[0])
  15. ans[i++]=str[0];
  16. else if(str[0]==')'){
  17. while(s.top()!='('){
  18. ans[i++]=s.top();
  19. s.pop();
  20. }
  21. s.pop();
  22. }
  23. else if(s.empty()||str[0]=='('||s.top()=='(')
  24. s.push(str[0]);
  25. else if(str[0]=='*'||str[0]=='/'){
  26. if(s.top()=='*'||s.top()=='/'){
  27. ans[i++]=s.top();
  28. s.pop();
  29. }
  30. s.push(str[0]);
  31. }
  32. else if(str[0]=='+'||str[0]=='-'){
  33. while(!s.empty()&&s.top()!='+'&&s.top()!='-'&&s.top()!='('){
  34. ans[i++]=s.top();
  35. s.pop();
  36. }
  37. if(!s.empty()&&s.top()!='('){
  38. ans[i++]=s.top();
  39. s.pop();
  40. }
  41. s.push(str[0]);
  42.  
  43. }
  44. }
  45. while(!s.empty()){
  46. ans[i++]=s.top();
  47. s.pop();
  48. }
  49. ans[i]=0;
  50. if(j)
  51. printf("\n\n%s", ans);
  52. else
  53. printf("%s", ans);
  54. }
  55. return 0;
  56. }
Runtime error #stdin #stdout 0s 3032KB
stdin
1

(
3
+
2
)
*
5
stdout
Standard output is empty