一路向北772 2021-12-27 10:58 采纳率: 100%
浏览 315
已结题

pta 7-5(猜中有奖)

过年了,村里要庆祝一下。村长对所有村民说:我们来做一个游戏,村里有一笔钱作为游戏的奖金,每个人写一个纸条上来。谁写的数与奖金数最接近就算猜中,这笔奖金就归谁。如果有多个人猜中,则平分这笔钱。现在让我们来写程序算算,都有哪些人得到了奖金?各得到多少?
输入格式:
为了简化,假设村民人数为10人。先输入一个整数(总奖金),再输入10个整数(村民们猜的奖金数)。

输出格式:
输出有两行。第一行输出得到奖金的村民编号(编号从0开始,0~9),如有多个编号,每个编号后带一个空格。 第二行输出人均奖金数,结果保留1位小数。

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-12-27 12:17
    关注
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月27日