[ create a new paste ] login | about

Link: http://codepad.org/qblj0aNR    [ raw code | output | fork ]

C, pasted on Jul 20:
#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);
		}
	}
}


Output:
1
2
式を入力してください
式:ERROR


Create a new paste based on this one


Comments: