본문 바로가기
C/Example

[C] 예제 - 계산기 제작 (함수, 포인터)

by 꾸압 2021. 3. 5.

<문제>

함수와 포인터를 이용해 +, -, *, /, % 연산을 이용해 입력된 두 숫자를 계산하는 계산기를 만드시오

 

<해설.1>

#include <stdio.h>	//계산기

int add(int x, int y);
int sub(int x, int y);
int mul(int x, int y);
int div(int x, int y);
int rem(int x, int y);

int main(){
	
	int num_1, num_2;
	
	char mrk;		//문자형으로 받을 땐 char 주의
	
	printf("첫번째 값을 입력해주세요 : ");
	scanf("%d", &num_1);
	printf("연산자 +, -, *, /, %% 중 쓸 기호를 입력하세요 : ");
	scanf(" %c", &mrk);		// 문자를 입력받을 시 '%c' 에서 스페이스바 하나를 넣어 ' %c'로 해야 오류가 나지 않는다. 
	printf("두번째 값을 입력하세요 : ");
	scanf("%d", &num_2);
	
	int (*fp)(int, int);
	
	if(mrk == '+')	fp = add;
	if(mrk == '-')	fp = sub;
	if(mrk == '*')	fp = mul;
	if(mrk == '/'){
		if(num_2 != 0)	fp = mul;
		else{
			printf("0 으로 나눌 수 없습니다. \n");
		}
	}
	if(mrk == '%'){
		if(num_2 != 0)	fp = div;
		else{
			printf("0으로 나눌 수 없습니다. \n");
		}
	}
	
	printf("%d ", fp(num_1, num_2) );
	
	return 0;
} 

int add(int x, int y){
	return x+y;
}

int sub(int x, int y){
	return x-y;
}

int mul(int x, int y){
	return x*y;
}

int div(int x, int y){
	return x/y;
}

int rem(int x, int y){
	return x%y;
}

 

 

 

 

 

댓글