[문제]
다음과 같이 두 개의 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 |