본문 바로가기

C 언어/연습문제

C언어 연습문제25

[문제]

다음과 같이 두 개의 int형 포인터 변수와 길이가 5인 int형 배열을 선언한다.
int* maxPtr;
int* minPtr;
int arr[5];

그리고 MaxAndMin이란 이름의 함수를 정의하고 이를 호출하면서 위의 배열과 두 포인터 변수에 대한 정보를 전달하자. 그리고 함수호출이 완료되면, 포인터 변수 maxPtr에는 가장 큰 값이 저장된 배열요소의 주소 값이, minPtr에는 가장 작은 값이 저장된 배열요소의 주소 값이 저장되어야 한다.

 

[실행결과]

정수 입력 1: 1
정수 입력 2: 3
정수 입력 3: 7
정수 입력 4: 9
정수 입력 5: 5
Max: 9, Min: 1

 

[코드]

#include<stdio.h>

void MaxAndMin(int* arr, int len, int** mxPtr, int** mnPtr)
{
	int* max, * min;
	int i;

	max = min = arr;
	for (i = 0; i < len; i++)
	{
		if (*max < arr[i])
			max = &arr[i];
		if (*min > arr[i])
			min = &arr[i];
	}

	*mxPtr = max;
	*mnPtr = min;
}

int main(void)
{
	int* maxPtr, * minPtr;
	int arr[5];
	int i;

	for (i = 0; i < 5; i++)
	{
		printf("정수 입력 %d: ", i + 1);
		scanf_s("%d", &arr[i]);
	}

	MaxAndMin(arr, sizeof(arr) / sizeof(int), &maxPtr, &minPtr);
	printf("Max: %d, Min: %d", *maxPtr, *minPtr);

	return 0;
}

 

<참고>

윤성우의 열혈 C 프로그래밍

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

C언어 연습문제27  (0) 2022.03.18
C언어 연습문제26  (0) 2022.03.17
C언어 연습문제24  (0) 2021.11.26
C언어 연습문제23  (0) 2021.11.24
C언어 연습문제22  (0) 2021.11.22