상세 컨텐츠

본문 제목

[c언어] 코딩도장 68.5 반환값과 매개변수가 있는 함수 포인터 만들기 문제풀이

c언어

by ~지우~ 2021. 7. 2. 09:20

본문

728x90

안녕하세요 지코딩입니다.

오늘은 코딩도장 68.5 심사문제 풀이를 해보겠습니다.

 

<문제> 표준 입력으로 문자열과 두 정수가 입력됩니다. 다음 소스 코드를 완성하여 문자열에 해당하는 함수로 두 정수를 계산하도록 만드세요.

 

strcmp함수를 이용해서 함수 이름과 입력된 문자열이 같은지 비교한 뒤, 함수 포인터에 해당 함수의 주소를 할당해주면 됩니다.

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int add(int *a, int *b)
{
    return *a + *b;
}

int sub(int *a, int *b)
{
    return *a - *b;
} 

int mul(int *a, int *b)
{
    return *a * *b;
} 

int div(int *a, int *b)
{
    return *a / *b;
}

int main()
{
    char funcName[10];
    int num1, num2;

    scanf("%s %d %d", funcName, &num1, &num2);

	int (*fp)(int*, int*) = NULL;

	if(strcmp("add", funcName)==0) fp=add;
	else if(strcmp("sub", funcName)==0) fp=sub;
	else if(strcmp("mul", funcName)==0) fp=mul;
	else if(strcmp("div", funcName)==0) fp=div;
    
    printf("%d\n", fp(&num1, &num2));

    return 0;
}
728x90

관련글 더보기

댓글 영역