最接近的k个数之和

最近基地在研讨一个被平均的问题 ,“姚明与潘长江平均身高约1.92米能说明什么?潘长江很高吗?”。

基于此,陈老师有意探讨最接近于他工资水平的k个人的工资平均是多少,这个统计指标多少能反映一些问题。请写一个程序帮助陈老师解决这个问题。

文件包含多个测试例子,每个测试例子第一行是陈老师的工资数和整数k,第二行是空格分隔最后一个为0的浮点数(其他都大于0)

d k

d1 d2 d3 … 0

求工资最接近于d的k个数的平均值,输出到一行,结果取整。
input
10 2
1 2 3 8 11 0

3.1 3
1 2 3 4 5 0

output
9
3

#include<stdio.h>
#include<math.h>
int main()
{
int k;
double d;
int i,j,t;
scanf("%lf%d",&d,&k);
double d1[50];
int m;
double a[50];
for( i=0;;i++)
{
scanf("%lf",&d1[i]);
if(d1[i]==0){m=i;break;}
}
double sum=0;
for( i=0;i<m;i++)
{
a[i]=d1[i]-d;
}
for( i=0;i<m;i++)
{
for( j=i+1;j<m;j++)
if(fabs(a[i])>fabs(a[j])){ t=a[i];a[i]=a[j];a[j]=t;}
}
for( i=0;i<k;i++)
sum+=a[i]+d;
int average=sum/k;
printf("%d\n",average);
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44879687/article/details/89648163
今日推荐