You are on page 1of 3

#include <stdio.

h>
#include <string.h>
main()
{
int c;
int state = 0;
int num1 = 0;
int num2 = 0;
int total = 0;
int diff = 0;
int multi = 0;
int quo = 0;
int result =0;
while((c = getchar())!='=')
{
if(state == 0)
{
if(c >= '0' && c<='9')
{
num1 = c-48;
state = 0;
}
else if(c == '+')
{
state = 1;
}
else if(c == '-')
{
state = 2;
}
else if(c == '*')
{
state = 3;
}
else if(c== '/')
{
state = 4;
}
else
{
printf("%c is not a Valid operator \n",c);
c = '=';
}
}

else if(state == 1)
{
num2 = c-48;

//

total = sum(num1, num2);


printf("Sum of %d and %d is %d\n",num1,num2,total);
num1 = total;
state = 0;
result = num1;

}
else if(state == 2)
{
num2 = c-48;
diff = sub(num1, num2);
// printf("Difference of %d and %d is %d\n",num1,num2,diff);
state = 0;
num1 = diff;
result = diff;
}
else if (state == 3)
{
num2 = c-48;
multi = mul(num1, num2);
// printf("Multiplication of %d and %d is %d\n",num1,num2,multi);
state = 0;
num1 = multi;
result = multi;
}
else if (state == 4)
{
num2 = c-48;
quo = div(num1, num2);
// printf("Quotient of %d and %d is %d\n",num1,num2,quo);
state = 0;
num1 = quo;
result = quo;
}
}
printf("Result of the equation provided is %d",result);
}

int sum(int a, int b)


{
return a+b;
}
int sub(int a, int b)
{

return a-b;
}
int mul (int a, int b)
{
return a*b;
}
int div (int a, int b)
{
return a/b;
}

You might also like