qq_38692022 2018-11-04 13:05 采纳率: 70%
浏览 1760
已采纳

java 用数组解决发奖金问题

过年了,村里要庆祝。村长说,村里有一笔钱作为奖金,让每个人写一个纸条上来,谁写的数目与奖金最接近,就算中,这笔奖金就归谁,如果多人猜中,则平分。编写程序,算算都有哪些人得到奖金?多少?

            这个能用数组写一个程序给我吗  想看看成品 自己搞不明白。。
  • 写回答

5条回答 默认 最新

  • threenewbee 2018-11-04 14:06
    关注
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Arrays;
    
    class Q707984 {
        public static void main(String[] args) {
            int award = 100;
            String[] people = { "a", "b", "c", "d", "e", "f", "g", "h" };
            Integer[] guess = { 75, 70, 80, 120, 100, 110, 100, 45 };
    
            Integer[] ordered = new Integer[people.length];
            for (int i = 0; i < ordered.length; i++) ordered[i] = i;
            Arrays.sort(ordered, new Comparator<Integer>() {
                @Override
                public int compare(Integer a, Integer b) {
                    int x = guess[a] - award > 0 ? guess[a] - award : award - guess[a];
                    int y = guess[b] - award > 0 ? guess[b] - award : award - guess[b];
                    return x - y;
                }
            });
            int maxp = 0;
            int i = 0;
            while (guess[ordered[i++]] == award) maxp++;
            if (maxp <= 1)
                System.out.println(people[ordered[0]] + "一人得奖" + award + "元。");
            else
            {
                for (i = 0; i < maxp; i++)
                    System.out.print(people[ordered[i]] + " ");
                System.out.println("共同得奖" + award / (float)(maxp) + "元。");
            }
        }
    }
    

    图片说明

    如果多人一样,但是都有误差,也平分,那么
    int i = 0;
    while (guess[ordered[i++]] == award) maxp++;
    修改为
    int i = 1;
    while (guess[ordered[i++]] == guess[0]) maxp++;

    如果问题得到解决,请点我回答左上角的采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding