이것저것
C언어 포인터 이용해 최대 최소 구하기 본문
문제
수열 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;
}
}
'Language > C언어' 카테고리의 다른 글
C언어 백준 10871 - X보다 작은 수 (0) | 2020.11.22 |
---|---|
C언어 백준 2869 달팽이는 올라가고 싶다 (0) | 2020.11.21 |
C언어 구조체 이용해 점 좌표 비교하기 (0) | 2020.11.21 |
C언어 문자열 입력 받아 공백 문자 삭제하기 (0) | 2020.11.21 |
C언어 transpose matrix (0) | 2020.11.21 |