Advertisement
Guest User

Untitled

a guest
Sep 30th, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. // uloha-2-1.c -- Tyzden 2 - Uloha 1
  2. // Jan Panis, 29.9.2014 12:02:37
  3.  
  4. #include <stdio.h>
  5. char pole[10000];
  6. int i=0,j,first=0;
  7. char c,g,pom,zapamataj,a,b;
  8.  
  9. void push(char operator1)
  10. {
  11. pole[i]=operator1;
  12. i++;
  13. }
  14.  
  15. char pop()
  16. {
  17. char operator1;
  18. i--;
  19. operator1=pole[i];
  20. return operator1;
  21. }
  22.  
  23. int main()
  24. {
  25.  
  26. j=0;
  27. i=0;
  28. first=0;
  29. while ((c=getchar())!=EOF)
  30. {
  31.  
  32. if (c=='\n')
  33. {
  34. while (i!=0)
  35. {
  36. b=pop();
  37. putchar(b);
  38. }
  39.  
  40. putchar('\n');
  41. j=0;
  42. i=0;
  43. first=0;
  44. }
  45.  
  46.  
  47. if ((c=='+') || (c=='-') || (c=='*') || (c=='/'))
  48. {
  49.  
  50. if (((pole[i-1]=='+') || (pole[i-1]=='-') || (pole[i-1]=='(')) && ((c=='*') || (c=='/')))
  51. {
  52. push(c);
  53. }
  54.  
  55. else
  56. {
  57. if (((pole[i-1]=='/') || (pole[i-1]=='*') || (pole[i-1]=='(')) && ((c=='-') || (c=='+')))
  58. {
  59. zapamataj=c;
  60. while (((pole[i-1]!='*') || (pole[i-1]!='/')) && (pole[i-1]!='(') && (i>=0))
  61. {
  62. if (i<=0)
  63. {
  64. break;
  65. }
  66. pom=pop();
  67. putchar(pom);
  68.  
  69. }
  70. push(zapamataj);
  71. }
  72. else
  73. {
  74. if (first==0)
  75. {
  76. push(c);
  77. first=1;
  78. }
  79. else
  80. {
  81.  
  82. pom=pop();
  83. putchar(pom);
  84.  
  85. push(c);
  86.  
  87. }
  88. }
  89. }
  90. }
  91.  
  92. if (c=='(')
  93. {
  94. push(c);
  95. }
  96.  
  97. if (c==')')
  98. {
  99. while ((a=pop())!='(')
  100. {
  101. if (i<=0)
  102. {
  103. break;
  104. }
  105. putchar(a);
  106. }
  107. }
  108.  
  109. if ((c>='A') && (c<='Z'))
  110. {
  111. putchar(c);
  112. }
  113.  
  114. }
  115.  
  116. while (i!=0)
  117. {
  118. c=pop();
  119. putchar(c);
  120. }
  121.  
  122. return 0;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement