中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数, 代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分。 对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。 如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。 C语言教学班共有学生n人(教学班人数不超过500人),在单元测试中每个同学全力发挥考出了 不错的成绩,现在老师想要知道班级的平均分和班级分数的中位数。 具体操作如下: 1.先输入班级总人数n; 2.再输入班级n个同学的全部成绩; 3.计算平均分和中位数后输出;
input: 在第一行输入班级人数n; 在第二行输入n个成绩(学生成绩均为正整数)。 output: 输出平均分和中位数(输出结果保留两位小数)。
example: input: 6 80 70 95 75 62 90
output: 78.67 77.50
输入格式:
6 1 5 3 4 99 8
输出格式:
20.00 4.50
输入样例:
6
1 5 3 4 99 8
输出样例:
20.00 4.50
结尾无空行
输入样例:
7
1 5 3 4 99 8 95
输出样例:
30.71 5.00
结尾无空行
#include <stdio.h>
int main()
{
int i,j,n,a[500],t;
double ave,min,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
sum+=a[i];
}
for(i=0;i<n;i++)
{
for(j=1+i;j<n;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
ave=sum/n*1.0;
if(n%2==1)
{
min=a[n/2]*1.0;
printf("%.2f %.2f",ave,min);
}
else if(n%2==0)
{
min=(a[(n+1)/2]+a[(n-1)/2])/2.0;
printf("%.2f %.2f",ave,min);
}
return 0;
}