>  기사  >  백엔드 개발  >  주어진 목록의 중앙값을 찾는 C 프로그램

주어진 목록의 중앙값을 찾는 C 프로그램

PHPz
PHPz앞으로
2023-09-14 13:21:08986검색

주어진 목록의 중앙값을 찾는 C 프로그램

목록의 요소를 순서대로 배열한 경우 목록의 요소를 양쪽에 동일한 개수의 요소로 두 부분으로 나눈 중간 값을 중앙값이라고 합니다.

요소 수가 홀수이면 중간 값이 하나만 있고, 항목 수가 짝수이면 중간 값이 두 개가 됩니다.

따라서 짝수 항목의 중앙값은 두 개의 중간 값의 평균으로 지정됩니다.

알고리즘

중앙값을 계산하려면 아래 알고리즘을 참조하세요.

1단계 - 항목 수를 유지하면서 항목을 배열로 읽어옵니다.

2단계 - 항목을 오름차순으로 정렬합니다.

3단계 - 중앙값을 계산합니다.

중앙값을 찾기 전에 숫자를 정렬하는 논리는 다음과 같습니다.-

for (i = 1 ; i <= n-1 ; i++){
   for (j = 1 ; j <= n-i ; j++){
      if (a[j] <= a[j+1]){
         t = a[j];
         a[j] = a[j+1];
         a[j+1] = t;
      } else
      continue ;
   }
}

목록의 중앙값을 찾는 논리는 다음과 같습니다.-

if ( n % 2 == 0)
   median = (a[n/2] + a[n/2+1])/2.0 ;
else
   median = a[n/2 + 1];

다음은 주어진 항목의 중앙값을 계산하는 C 프로그램입니다. number-

Live Demonstration

#include<stdio.h>
#define N 10
main( ){
   int i,j,n;
   float median,a[N],t;
   printf("Enter the number of items</p><p>");
   scanf("%d", &n);
   /* Reading items into array a */
   printf("Input %d values </p><p>",n);
   for (i = 1; i <= n ; i++)
   scanf("%f", &a[i]);
   /* Sorting begins */
   for (i = 1 ; i <= n-1 ; i++){ /* Trip-i begins */
      for (j = 1 ; j <= n-i ; j++) {
         if (a[j] <= a[j+1]) { /* Interchanging values */
            t = a[j];
            a[j] = a[j+1];
            a[j+1] = t;
         }
         else
         continue ;
      }
   } /* sorting ends */
   /* calculation of median */
   if ( n % 2 == 0)
      median = (a[n/2] + a[n/2+1])/2.0 ;
   else
   median = a[n/2 + 1];
   /* Printing */
   for (i = 1 ; i <= n ; i++)
   printf("%f ", a[i]);
   printf("</p><p></p><p>Median is %f</p><p>", median);
}

Output

위 프로그램을 실행하면 다음과 같은 출력이 생성됩니다 -

Enter the number of items
5
Input 5 values
2.3
1.2
3.8
4.6
8.9
8.900000 4.600000 3.800000 2.300000 1.200000

Median is 3.800000

위 내용은 주어진 목록의 중앙값을 찾는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제