Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để tìm giá trị trung bình của một danh sách đã cho.

Nếu các phần tử của danh sách được sắp xếp theo thứ tự thì giá trị giữa chia các mục thành hai phần với số lượng các mục bằng nhau ở hai bên được gọi là giá trị trung bình.

Số lẻ của các mục chỉ có một giá trị trung bình trong khi; số lượng mục chẵn có hai giá trị giữa.

Do đó, giá trị trung bình cho số mục chẵn được chỉ định là giá trị trung bình của hai giá trị giữa.

Thuật toán

Tham khảo thuật toán đưa ra bên dưới để tính giá trị trung bình.

Bước 1 - Đọc các mục thành một mảng trong khi vẫn giữ số lượng các mục.

Bước 2 - Sắp xếp các mục theo thứ tự tăng dần.

Bước 3 - Tính toán trung vị.

Logic được sử dụng để sắp xếp các số trước khi tìm giá trị trung bình như sau -

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 ;
   }
}

Logic được sử dụng để tìm trung vị của danh sách như sau -

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

Ví dụ

Sau đây là chương trình C để tính giá trị trung bình của các số đã cho -

#include<stdio.h>
#define N 10
main( ){
   int i,j,n;
   float median,a[N],t;
   printf("Enter the number of items\n");
   scanf("%d", &n);
   /* Reading items into array a */
   printf("Input %d values \n",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("\n\nMedian is %f\n", median);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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