有2000元奖金,10个人来分。每人先写出自己期望得到的奖金,最接近所有人期望奖金的平均值的一人(或多人)平分这笔奖金。输出每个人的序号跟他们的预期奖金,输出获得奖金的人的序号和他分得的奖金。
例如:2人的期望奖金为200,3人的期望奖金为400,5人的期望奖金为500,那么期望奖金为400的3人分得奖金666元。
#include <stdio.h>
#include <math.h>
#define N 10
int main() {
int a[N],b[N],c,i,j,k,l;
l=0;
for(i=0;i<N;i++){
scanf("%d",&a[i]);} //输入每人的期望
c=(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9])/10;
for(i=0;i<N;i++){
b[i]=fabs(a[i]-c);
} //计算差值
for(i=0;i<N;i++){
if(b[i]<b[i+1]) k=i;
} //find
printf("The person who has the nearest number is(are) ");
for(i=1;i<N;i++){
if(b[i]==b[k]){
l++;
printf("No.%d,",i+1);
}
}
printf("\n everyone gets %d",2000/l);
}
网友评论