Without a Break

[순서도 실습] 백준 2587번 - 대표값2 (C) 본문

Algorithm/컴퓨터알고리즘

[순서도 실습] 백준 2587번 - 대표값2 (C)

와븨 2022. 11. 26. 00:08

문제


어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.

평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면

이 되고 따라서 중앙값은 30이 된다.

다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.

 

입력


첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작은 10의 배수이다.

 

출력


첫째 줄에는 평균을 출력하고, 둘째 줄에는 중앙값을 출력한다. 평균과 중앙값은 모두 자연수이다.

 

 

#include <stdio.h>
#include<stdlib.h>

int compare(const void *a, const void *b)
{
    int num1 = *(int *)a;
    int num2 = *(int *)b;
    if (num1 < num2)
        return -1;
    if (num1 > num2)
        return 1;
    return 0;
}
int main(void)
{
    int i, sum = 0, max = -1, cnt;
    int arr[5] = { 0, };
    int arr2[105] = { 0, };
    for (i = 0; i < 5; i++)
    {
        scanf("%d", &arr[i]);
        sum += arr[i];
    }
    sum /= 5;
    qsort(arr, 5, sizeof(int), compare);
    printf("%d\n%d", sum, arr[2]);
}

참고 블로그

https://ddanss.tistory.com/21

 

백준 2587 - 대표값2 [C언어]

1. 퀵정렬로 정렬한다음에 3번째 수를 출력했어요. 2. 어차피 5개뿐이라 이게 됩니다! #include #include int compare(const void *a, const void *b) { int num1 = *(int *)a; int num2 = *(int *)b; if (num1 < num2) return -1; if (num1 >

ddanss.tistory.com

 

[순서도]

헷갈리는 부분

: 메인 함수에서 compare 함수를 호출할 때, qsort 함수 내부에서 호출하는걸 어떻게 표현해야할 지 모르겠다..