Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

이것저것

C언어 포인터 이용해 최대 최소 구하기 본문

Language/C언어

C언어 포인터 이용해 최대 최소 구하기

olivia-com 2020. 11. 21. 11:05

문제

수열 a[], 수열의 크기 n, 두 개의 포인터 변수 *max, *min을 파라미터로 하는 함수 max_min을 만든다. 함수가 실행되면 수열 a[0]부터 a[n-1]까지 중에서 가장 큰 값이 *max에, 가장 작은 값이 *min에 저장된다

[입출력 예시] (34 82 49 102 7 94 23 11 50 31 가 키보드로 입력 받는 값)

Enter 10 numbers: 34 82 49 102 7 94 23 11 50 31

Largest: 102

Smallest: 7

#include <stdio.h>

void max_min(int a[], int n, int* max, int* min);

int main(void) {
	int num[100];
	int i = 0, j, k; // j는 max 값을 받음. k는 min 값을 받음.
	printf("Enter 10 numbers: ");
	while (i < 10) {
		scanf_s("%d", &num[i]);
		i++;
	}
	max_min(num, i, &j, &k);
	printf("Largest: %d\n", j);
	printf("Smallest: %d", k);

	return 0;
}

void max_min(int a[], int n, int* max, int* min) {
	int **Max = &max; // 이중포인터 변수로 포인터 변수의 주소값 저장 
	int **Min = &min;
	**Max = **Min = a[0]; // 이중포인터 초기화 
	int i;
	
	for(i = 0; i< n; i++){
		**Max = **Max < a[i] ? a[i] : **Max;
		**Min = **Min > a[i] ? a[i] : **Min;
	}
}