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程序-
#include输出结果#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); }
执行上述程序时,它会产生以下输出-
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
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语