정보처리산업기사 실기 시험 기출 문제 - 최대값과 최소값 찾기

  • 2 minutes to read

문제

다음 C 프로그램이 실행되었을 때의 동작을 설명하고, 출력 결과를 예측하시오.

소스 코드 파일명: max_min_comparison.c

#include <stdio.h>

int compare(int i, int j, int* ma, int* in) {
	if (i > j) {
		*ma = j;
		*in = i;
	}
	else {
		*ma = i;
		*in = j;
	}
}

int main() {
	int max = 0;
	int min = 0;
	compare(3, 7, &max, &min);
	printf("작은수:%d 큰수:%d", max, min);
}

입력 예시

이 프로그램은 사용자로부터 입력을 받지 않습니다.

출력 예시

작은수:3 큰수:7

해설

이 프로그램은 두 수를 비교하여 최소값과 최대값을 찾고, 해당 결과를 포인터를 통해 반환합니다.

  1. compare 함수는 두 정수 ij를 인자로 받고, 추가적으로 두 포인터 main도 받습니다. 이 포인터들은 함수 외부에 선언된 변수 maxmin의 주소를 가리킵니다.
  2. 함수 내에서 두 수를 비교하여, ij보다 큰 경우 ma 포인터를 통해 최소값(작은수)로 j를, in 포인터를 통해 최대값(큰수)으로 i를 저장합니다. 그 반대의 경우 mai를, inj를 저장합니다.
  3. main 함수에서는 compare 함수를 호출하여 두 수 3과 7을 비교하고, 결과적으로 max 변수에는 작은 수, min 변수에는 큰 수가 저장됩니다.
  4. 프로그램의 최종 출력은 "작은수:3 큰수:7"이며, 이는 maxmin 변수의 값에 따라 결정됩니다.

이 프로그램은 포인터를 사용하여 함수에서 복수의 결과값을 반환하는 방법을 보여주며, 변수의 값이 어떻게 변경되는지를 설명하는 좋은 예입니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com