[c언어] 대표값(평균값, 최빈값, 중앙값)의 계산

|



대표값을 측정하는 프로그램

// 평균값의 계산

#include <stdio.h>
int main(void)
{
    int a[]={26, 28, 30, 35, 35, 30,
                29, 39, 60, 31, 38, 36,
                33, 24, 34, 40, 29, 41,
                40, 29, 30, 44, 32, 65,
                35, 26, 38, 36, 37, 35};
    int n=sizeof(a)/sizeof(int), i;
    double sum=0;
    for(i=0;i<n;i++)
        sum+=a[i];
    printf("Mean : %f ", sum/n);
    return 0;
}

// 실행 결과




// 최빈값의 계산

#include <stdio.h>
int main(void)
{
    int a[]={26, 28, 30, 35, 35, 30,
                29, 39, 60, 31, 38, 36,
                33, 24, 34, 40, 29, 41,
                40, 29, 30, 44, 32, 65,
                35, 26, 38, 36, 37, 35};
    int n=sizeof(a)/sizeof(int);
    int i, j, mode, freq, count=1;
    for(i=0;i<n;i++)
    {
        freq=1;
        for(j=i+1;j<n;j++)
            if(a[i]==a[j])
                freq+=1;
        if(freq>=count)
        {
            mode=a[i];
            count=freq;
        }
    }
    printf("mode = %d , freq = %d \n", mode, count);
    return 0;
}

// 실행 결과




// 중앙값의 계산

#include <stdio.h>
int main(void)
{
    int a[]={26, 28, 30, 35, 35, 30,
                29, 39, 60, 31, 38, 36,
                33, 24, 34, 40, 29, 41,
                40, 29, 30, 44, 32, 65,
                35, 26, 38, 36, 37, 35};
    int n=sizeof(a)/sizeof(int);
    double median;
    int i, j, temp;
    for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++)
        {
            if(a[j+1]<a[j])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    if(n/2==0)
        median=(a[n/2]+a[n/2+1])/2;
    else
        median=a[(n+1)/2];
    printf("median = %f\n", median);
    return 0;
}

// 실행 결과 

  ::