SHARE
TWEET

Untitled

a guest Jan 23rd, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top