프로그래밍 언어/C언어

[실전C프로그래밍] 9장 포인터_8

선잠 2022. 12. 22. 03:15

실전 C프로그래밍(나중채 외) 교재를 바탕으로 학습하고, 해결한 실습문제의 답을 기록합니다.

(정답이 아니기에 오류 지적이나 피드백을 환영함)

 

저작권으로 인해 자세한 문제는 생략합니다.

 

Q. 크기가 3인 int 배열을 입력받아 중앙값을 출력

#include <stdio.h>

int *mid(int arr[]);

int main() {
    int arr[3], *median = NULL, *p = NULL;
    
    for (p = arr; p < arr + 3; p++)
    	scanf("%d", p);
    
    median = mid(arr);
    
    printf("%d\n", *median);
    
    return 0;
}

int *mid (int arr[]) {
    int *p = arr, *q = arr + 1; *r = arr + 2;
    
    if (*q <= *p && *p <= *r || *r <= *p && *p <= *q) return p;
    else if (*p <= *q && *q <= *r || *r <= *q && *q <= *p) return q;
    else return r;   
}