zhujuntao1 2023-04-09 06:28 采纳率: 75%
浏览 29
已结题

结果于答案差0.2,想不出哪错了


BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String s[]=br.readLine().split(" ");
        int max=Integer.parseInt(s[0]);
        int min=Integer.parseInt(s[0]);
        String tmp;
        String tmp1;
        int maxIndex=0;
        int minIndex=0;
        double sum=0.0;
        for (int i = 1; i < s.length; i++) {
            int value=Integer.parseInt(s[i]);
            if(max<value){
                max=value;
                maxIndex=i;
            }
            if(min>value){
                min=value;
                minIndex=i;
            }
        }
        tmp=s[s.length-1];
        s[s.length-1]=String.valueOf(max);
        s[maxIndex]=tmp;
        tmp1=s[s.length-2];
        s[s.length-2]=String.valueOf(min);
        s[minIndex]=tmp1;
        for (int i = 0; i <s.length-2 ; i++) {
           sum+=Integer.parseInt(s[i]);
        }
        System.out.println(String.format("%.2f",sum/5));

输入77 78 79 77 76 75 74
输入76.40,但答案是76.60

展开全部

  • 写回答

2条回答 默认 最新

  • 创意程序员 2023-04-09 06:56
    关注

    这个题是想把输入数据中最大值交换到最后,最小值交换到倒数第二的位置,然后计算排除掉最大最小两个数的剩余数的平均值。是吗?
    本次输入的最小数在最后,最大数交换到最后以后,最小数换位置了,但minIndex没同步修改,导致交换最小数位置时,换了错误的数。前面的5个数偏小1,所以答案偏小0.2。
    输入:
    77 78 79 77 76 75 74
    交换最大数后:
    77 78 74 77 76 75 79
    交换最小数后(正常应该第3个和第6个数交换):
    77 78 74 77 76 79 75

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    zhujuntao1 2023-04-09 12:07

    能说说怎么解决,这个问题吗?

    回复
    创意程序员 回复 zhujuntao1 2023-04-09 12:20

    交换max时,判断最后一个数如果=min(例子中的74),被交换到maxIndex的位置,此时的min换到了maxIndex处,需要同时设置minIndex=maxIndex,交换min时,才会找到正确的min

    1
    回复
    zhujuntao1 回复 创意程序员 2023-04-09 12:29

    可以可以

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月9日
  • 创建了问题 4月9日

悬赏问题

  • ¥15 nginx使用nfs进行服务器的数据共享
  • ¥15 C#i编程中so-ir-192编码的字符集转码UTF8问题
  • ¥15 51嵌入式入门按键小项目
  • ¥30 海外项目,如何降低Google Map接口费用?
  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)
  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部