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

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日

悬赏问题

  • ¥30 matlab解优化问题代码
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?
  • ¥15 Jenkins+k8s部署slave节点offline