2019~2020/정보 과학

switch-case와 while문, 함수를 사용한 사칙연산 계산기

유진 2019. 8. 21. 10:21
반응형
#include<stdio.h>

int plus(int a, int b){
	return a+b;
}
int minus(int a, int b){
	return a-b;
}
int mu(int a, int b){
	return a*b;
}
int di(int a, int b){
	return a/b;
}

int main()
{
	
	while(1){
		int a = 0;
		int b = 0;
		char c;
		printf("종료를 원하신다면 0 + 0 를 입력해주세요\n");
		printf("숫자를 입력하세요 : ");
		scanf("%d %c %d", &a, &c, &b);
		printf("결과를 출력합니다 : ");
		
		switch(c){
			case '+': 
				printf("%d %c %d = %d\n\n",a, c, b, plus(a,b)); break;
			case '-': 
				printf("%d %c %d = %d\n\n",a, c, b, minus(a,b)); break;
			case '*': 
				printf("%d %c %d = %d\n\n",a, c, b, mu(a,b)); break;
			case '/': 
				printf("%d %c %d = %d\n\n",a, c, b, di(a,b)); break; 
			default :
				printf("다시 입력하세요 :"); break;
		}
		if(a==0 && c == '+' && b==0){
			printf("계산기를 종료합니다."); 
			break;
		}
	}
}

먼저 연산자들을 함수로 선언해놨습니다.

그런 후에 switch-case문으로 경우를 나눠놨고, while문을 이용하여 계속 계산을 진행할 수 있게 해 두었습니다!

그리고 if문을 사용해 프로그램을 종료시켰습니다. 

 

scanf("%d", n);

%d뒤에 띄어쓰기 있으면 무한루프에 빠져서 절대 못나옵니다ㅠ 

(저는 이거 발견하는데 몇시간 걸렸습니다ㅠㅠ 처음에는 다 그런 거겠죠ㅜㅜ?)

 

반응형