为什么输出3个最高分的和而不是最高分的拼接?

来源:7-1 编程练习

慕妹246195

2019-09-30 02:45

import java.util.Arrays;
public class HelloWorld {
    
    //完成 main 方法
    public static void main(String[] args) {
        int[]scores={89 , -23 , 64 , 91 , 119 , 52 , 73};
        HelloWorld hello=new HelloWorld();
        hello.get(scores);
        
        
    }
    
    //定义方法完成成绩排序并输出前三名的功能
    
    public void get(int[]scores)
    {
        int[] top=new int[3];
        Arrays.sort(scores);
        for(int j=0,i=scores.length-1;i>0;i--)
        {
            if(scores[i]<0||scores[i]>100)
        continue;
        while(j!=3)
        {
            top[j]=scores[i];
             j++;
        }
        }
        System.out.println(top[0] + top[1] + top[2]);
    }
}


写回答 关注

2回答

  • 慕哥5554781
    2019-10-01 14:30:36

    如果是三个字符串相加 求出就是918973     ,数字变量相加就求和了。试试下面这种

    top[0] +" "+ top[1] +" "+ top[2]

  • 慕妹246195
    2019-09-30 02:49:31

    补充:题目要求是 把数组中取值在0~100之间的数中前三个最高分依次输出,也就是91,89,73。

    我用加号+连接三个数组元素,却直接输出了253,相当于把数组求和了,为什么呢?

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题