언어/C언어

[C언어] 3일차 -6 if / scanf 응용 / 계산기 만들기

antoroong 2025. 2. 10. 00:02

if / scanf 응용/계산기 만들기

 

#include <stdio.h>

int main(void) {

int test_scanf_2 = if_scanf_2();

	return 0;
}


int if_scanf_2() {
	/*
	scanf()
	첫 번째 정수를 입력해 주세요 : 10
	계산할 연산자(+, -, *, /)를 입력해 주세요 : +
	두 번째 정수를 입력해 주세요 : 8
	10 + 8 = 18입니다.
	*/

	printf("----------- if_scanf_2 시작 -----------\n\n");
	int num1, num2;
	char ch;

	printf("첫 번째 정수를 입력 :");
	scanf("%d", &num1);

	printf("계산할 연산자를 입력 : ");
	scanf(" %c", &ch);	//char이기때문에 %c앞에 엔터 필수.. 안그러면 문자를 인식못함

	printf("두번째 정수를 입력 :");
	scanf("%d", &num2);

	if (ch == '+') {
		printf("%d + %d = %d 입니다\n", num1, num2, num1+num2);
	}

	if (ch == '-') {
		printf("%d - %d = %d 입니다\n", num1, num2, num1 - num2);
	}

	if (ch == '*') {
		printf("%d * %d = %d 입니다\n", num1, num2, num1 * num2);
	}

	if (ch == '/') {
		printf("%d / %d = %d 입니다\n", num1, num2, num1 / num2);
	}
else {
		printf("잘못된 연산기호")
	}
	printf("----------- if_scanf_2 종료 -----------\n\n");
	return 0;

}

 

 

 

계산기 만들기 예외상황

만약에 나누기를 해야할때 10 / 0을 해버린다면 0을 나눌 수 없어서 프로그램 예외가 발생함

 

계산기 만들기 예외처리 해결법

if (ch == '/') {
		if (num2 == 0) {    //이 부분을 추가해본다
			printf("0을 나눌수 없습니다 다시 입력하세요\n");
			printf("두번째 정수를 입력 :\n");
			scanf("%d", &num2);
		}
		printf("%d / %d = %d 입니다\n", num1, num2, num1 / num2);
	}