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 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短