#include <stdio.h>
int main(void)
{
double answer; /*答え*/
double x,y,z; /*x=第一項,y=第二項,第三項*/
char op1,op2; /*演算子1、演算子2*/
while(1){
printf("式を入力してください\n");
printf("式:");
scanf("%lf %c %lf %c %lf" ,&x,&op1,&y,&op2,&z);
if(((op1=='+') || (op1=='-')) && ((op2=='*') || (op2=='/'))) /*右辺と左辺の計算の優先順位の判断*/
{
switch(op2){
case '+':
answer=y+z;
break;
case '-':
answer=y-z;
break;
case '*':
answer=y*z;
break;
case '/':
if(z==0){
printf("0で割ることは出来ません\n");
return 0;
}
answer=y/z;
break;
default:
printf("ERROR\n");
return 0;
}
switch(op1){
case '+':
answer=x+answer;
break;
case '-':
answer=x-answer;
break;
case '*':
answer=x*answer;
break;
case '/':
if(y==0){
printf("0で割ることは出来ません\n");
return 0;
}
answer=x/answer;
break;
default:
printf("ERROR\n");
return 0;
}
printf("答え:%lf\n",answer);
}
else
{
switch(op1){
case '+':
answer=x+y;
break;
case '-':
answer=x-y;
break;
case '*':
answer=x*y;
break;
case '/':
if(y==0){
printf("0で割ることは出来ません\n");
return 0;
}
answer=x/y;
break;
default:
printf("ERROR\n");
return 0;
}
switch(op2){
case '+':
answer=answer+z;
break;
case '-':
answer=answer-z;
break;
case '*':
answer=answer*z;
break;
case '/':
if(z==0){
printf("0で割ることは出来ません\n");
return 0;
}
answer=answer/z;
break;
default:
printf("ERROR\n");
return 0;
}
printf("答え:%lf\n",answer);
}
}
}