본문으로 바로가기

(C언어) 간단한 계산기

category C언어/C언어 연습 2020. 11. 23. 22:34
#include<stdio.h>
#include<string.h>
#include<stdbool.h>

void disp(int n1, int n2, char oper, int r); // 결과 출력
int plus(int n1, int n2);	// 더하기
int sub(int n1, int n2);	// 빼기
int mul(int n1, int n2);	// 곱하기
int div(int n1, int n2);	// 나누기
int input_int();
char input_char();


int main() 
{
	int num1;
	int num2;
	char op;
	char yn;

	do
	{
		int result = 0;
		bool tf = true;

		printf("첫 번째 숫자를 입력하세요.");
		num1 = input_int();

		printf("\n연산자를 입력하세요.");
		op = input_char();
		
		printf("\n두 번째 숫자를 입력하세요.");
		num2 = input_int();

		printf("\n%d %c %d\n", num1, op, num2);
		switch (op) {
		case '+':
			result = plus(num1, num2);
			break;
		case '-':
			result = sub(num1, num2);
			break;
		case '*':
			result = mul(num1, num2);
			break;
		case '/':
			if (num2 == 0) {
				printf("\n0으로 나눌 수 없습니다.\n");
				tf = false;
			}
			else {
				result = div(num1, num2);
			}
			break;
		default:
			printf("%c는 올바르지 않은 연산자 입니다.\n", op);
			tf = false;
			break;
		}

		if (tf) {
			disp(num1, num2, op, result);
		}

		printf("다시하시겠습니까? Y/N");
		yn = input_char();
	} while (yn == 'Y' || yn == 'y');

	
}

void disp(int n1, int n2, char oper, int r)	// 결과 출력
{
	printf("%d %c %d = %d 입니다.\n", n1, oper, n2, r);
}

int plus(int n1, int n2)	// 더하기
{
	return (n1 + n2);
}

int sub(int n1, int n2)	// 빼기
{
	return (n1 - n2);
}

int mul(int n1, int n2)	// 곱하기
{
	return (n1 * n2);
}

int div(int n1, int n2)		// 나누기
{
	return (n1 / n2);
}

int input_int() 
{
	int i;
	scanf_s("%d", &i);
	return i;
}

char input_char() 
{
	char c = ' ';
	rewind(stdin);
	scanf_s("%c", &c);
	return c;
}
반응형

'C언어 > C언어 연습' 카테고리의 다른 글

(C언어) 3차원배열 성적처리프로그램  (1) 2020.11.23