过年了,村里要庆祝一下。村长对所有村民说:我们来做一个游戏,村里有一笔钱作为游戏的奖金,每个人写一个纸条上来。谁写的数与奖金数最接近就算猜中,这笔奖金就归谁。如果有多个人猜中,则平分这笔钱。现在让我们来写程序算算,都有哪些人得到了奖金?各得到多少?
输入格式:
为了简化,假设村民人数为10人。先输入一个整数(总奖金),再输入10个整数(村民们猜的奖金数)。
输出格式:
输出有两行。第一行输出得到奖金的村民编号(编号从0开始,0~9),如有多个编号,每个编号后带一个空格。 第二行输出人均奖金数,结果保留1位小数。
#include<stdio.h>
#include<math.h>
int main() {
int total,i,j,t;
int a[10],b[10],c[10];
scanf("%d",&total);
for(i=0;i<10;i++){
scanf("%d",&a[i]);
b[i]=abs(a[i]-total);
c[i]=i;
}
for(i=0;i<9;i++){
for(j=0;j<9-i;j++){
if(b[j]>b[j+1]){
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
}
int cnt=1;
printf("%d ",c[0]);
for(i=1;i<10;i++){
if(b[i]==b[0]){
printf("%d ",c[i]);
cnt++;
}else{
break;
}
}
printf("\n%.1f",total*1.0/cnt);
return 0;
}