Maison  >  Article  >  développement back-end  >  Programme C pour trouver la médiane d'une liste donnée

Programme C pour trouver la médiane d'une liste donnée

PHPz
PHPzavant
2023-09-14 13:21:081039parcourir

Programme C pour trouver la médiane dune liste donnée

Si les éléments de la liste sont disposés dans l'ordre, la valeur médiane qui divise les éléments de la liste en deux parties avec un nombre égal d'éléments des deux côtés est appelée la médiane.

Si le nombre d'éléments est un nombre impair, il n'y aura qu'une seule valeur intermédiaire tandis que s'il y a un nombre pair d'éléments, il y aura deux valeurs intermédiaires ;

Ainsi, la médiane d'un nombre pair d'éléments est spécifiée comme la moyenne des deux valeurs médianes.

Algorithme

Veuillez vous référer à l'algorithme ci-dessous pour calculer la médiane.

Étape 1 - Lisez les éléments dans un tableau tout en conservant le nombre d'éléments.

Étape 2 - Triez les éléments par ordre croissant.

Étape 3 - Calculez la médiane.

La logique pour trier les nombres avant de trouver la médiane est la suivante -

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

La logique pour trouver la médiane d'une liste est la suivante -

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

Exemple

Voici le programme C pour calculer la médiane d'un nombre donné -

Démonstration en direct

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

Sortie

Lors de l'exécution du programme ci-dessus, la sortie suivante sera générée-

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer