fork download
  1. #include<stdio.h>
  2. char stack[401];
  3. int index=-1;
  4. void push(char value);
  5. int pop();
  6. int main()
  7. {
  8. char arr[401];//remember this you always forget : 1 extra for '\0' char out[401];
  9. char out[401];
  10. int i,t=0,k=0;
  11. scanf("%d",&t);
  12.  
  13. while(t--)
  14. {
  15. k=0;
  16. i=0;
  17. scanf("%s",arr);
  18. while(arr[i]!='\0')
  19. {
  20. if(arr[i]=='('){push(arr[i]);}
  21. if(arr[i]=='*'){push(arr[i]);}
  22. if(arr[i]=='-'){push(arr[i]);}
  23. if(arr[i]=='+'){push(arr[i]);}
  24. if(arr[i]=='/'){push(arr[i]);}
  25. if(arr[i]=='^'){push(arr[i]);}
  26.  
  27. if(arr[i]>='a'&& arr[i]<='z' )
  28. {
  29. out[k]=arr[i];
  30. k++;
  31. }
  32.  
  33. if(arr[i] == ')')
  34. {
  35. while(stack[index]!='(')
  36. {
  37. out[k]= pop();
  38. k++;
  39. }
  40. pop();
  41. }
  42. i++;
  43. }
  44. for(i=0;i<k;i++)
  45. {
  46. printf("%c",out[i]);
  47. }
  48.  
  49. }
  50.  
  51. }
  52.  
  53. void push(char value) { index++; stack[index] = value;
  54.  
  55. }
  56.  
  57. int pop() { index--; return(stack[index+1]); }
Success #stdin #stdout 0s 3344KB
stdin
1
(a+b)*(c+d)
stdout
ab+cd+