Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4. #include <math.h>
  5.  
  6. int notacja(const char tab[],int n)
  7. {
  8. int tab_znaki[50]={0};
  9. int tab_liczby[50]={0};
  10. int i = 0,j=0;
  11. int temp;
  12. while(i<=n)
  13. {
  14. if(isdigit(tab[i]))
  15. {
  16. tab_liczby[j] = tab[i]-'0';
  17. j++;
  18. }
  19. else
  20. {
  21. switch(tab[i])
  22. {
  23. case '+':
  24. temp = tab_liczby[j-2]+tab_liczby[j-1];
  25. tab_liczby[j-2] = temp;
  26. tab_liczby[j-1] = '\0';
  27. j--;
  28. break;
  29. case '-':
  30. temp = tab_liczby[j-2]-tab_liczby[j-1];
  31. tab_liczby[j-2] = temp;
  32. tab_liczby[j-1] = '\0';
  33. j--;
  34. break;
  35. case '*':
  36. temp = tab_liczby[j-2]*tab_liczby[j-1];
  37. tab_liczby[j-2] = temp;
  38. tab_liczby[j-1] = '\0';
  39. j--;
  40. break;
  41. case '/':
  42. temp = tab_liczby[j-2]/tab_liczby[j-1];
  43. tab_liczby[j-2] = temp;
  44. tab_liczby[j-1] = '\0';
  45. j--;
  46. break;
  47. case '^':
  48. temp = pow(tab_liczby[j-2],tab_liczby[j-1]);
  49. tab_liczby[j-2] = temp;
  50. tab_liczby[j-1] = 0;
  51. j--;
  52. break;
  53. }
  54. }
  55. i++;
  56. }
  57. return tab_liczby[0];
  58. }
  59.  
  60.  
  61.  
  62.  
  63. int main(void)
  64. {
  65. char tab[21] = {0};
  66.  
  67. for(int i = 0;i<20;i++)
  68. {
  69. scanf("%c",&tab[i]);
  70. if(tab[i]==' ')
  71. {
  72. i--;
  73. continue;
  74. }
  75. if(tab[i]=='\n')
  76. {
  77. tab[i]='\0';
  78. break;
  79. }
  80. }
  81.  
  82.  
  83.  
  84. int dlugosc = strlen(tab)-1;
  85. for(int i = 0; i<=dlugosc;i++)
  86. {
  87. if((tab[i]!='+'&&tab[i]!='-'&&tab[i]!='*'&&tab[i]!='/'&&tab[i]!='^')&&(tab[i]<'0'||tab[i]>'9'))
  88. {
  89. printf("Incorrect input");
  90. return 1;
  91. }
  92. }
  93.  
  94. printf("%d",notacja(tab,dlugosc));
  95.  
  96.  
  97. return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement