Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <math.h>
- int notacja(const char tab[],int n)
- {
- int tab_znaki[50]={0};
- int tab_liczby[50]={0};
- int i = 0,j=0;
- int temp;
- while(i<=n)
- {
- if(isdigit(tab[i]))
- {
- tab_liczby[j] = tab[i]-'0';
- j++;
- }
- else
- {
- switch(tab[i])
- {
- case '+':
- temp = tab_liczby[j-2]+tab_liczby[j-1];
- tab_liczby[j-2] = temp;
- tab_liczby[j-1] = '\0';
- j--;
- break;
- case '-':
- temp = tab_liczby[j-2]-tab_liczby[j-1];
- tab_liczby[j-2] = temp;
- tab_liczby[j-1] = '\0';
- j--;
- break;
- case '*':
- temp = tab_liczby[j-2]*tab_liczby[j-1];
- tab_liczby[j-2] = temp;
- tab_liczby[j-1] = '\0';
- j--;
- break;
- case '/':
- temp = tab_liczby[j-2]/tab_liczby[j-1];
- tab_liczby[j-2] = temp;
- tab_liczby[j-1] = '\0';
- j--;
- break;
- case '^':
- temp = pow(tab_liczby[j-2],tab_liczby[j-1]);
- tab_liczby[j-2] = temp;
- tab_liczby[j-1] = 0;
- j--;
- break;
- }
- }
- i++;
- }
- return tab_liczby[0];
- }
- int main(void)
- {
- char tab[21] = {0};
- for(int i = 0;i<20;i++)
- {
- scanf("%c",&tab[i]);
- if(tab[i]==' ')
- {
- i--;
- continue;
- }
- if(tab[i]=='\n')
- {
- tab[i]='\0';
- break;
- }
- }
- int dlugosc = strlen(tab)-1;
- for(int i = 0; i<=dlugosc;i++)
- {
- if((tab[i]!='+'&&tab[i]!='-'&&tab[i]!='*'&&tab[i]!='/'&&tab[i]!='^')&&(tab[i]<'0'||tab[i]>'9'))
- {
- printf("Incorrect input");
- return 1;
- }
- }
- printf("%d",notacja(tab,dlugosc));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement