Yesman012
2016-01-04 19:20
package com.imooc;
import java.util.Arrays;
public class HelloWorld {
public int[] getScores(int[] scores){
Arrays.sort(scores);
int j = 0;
int[] newScores = new int[j];
for(int i = 0;i < scores.length;i++){
if(scores[i] < 0&&scores[i] > 100){
continue;
}
else{
newScores[j] = scores[i];
j++;
}
}
return newScores;
}
public static void main(String[] args){
HelloWorld hello = new HelloWorld();
int[] scores = {89,-23,64,91,119,52,73};
int[] newScores = hello.getScores(scores);
System.out.println(Arrays.toString(newScores));
}
}
不客气。你可以试一试这样。
//新成绩的数组长度不会超过原数组长度,所以可以将两个数组长度定为一样。 int[] newScores = new int[scores.length]; for(int i = 0 ; i <= scores.length - 1; i++) { if(scores[i] >= 0 && scores[i] <= 100){ //新数组长度只记住有效成绩。无效成绩的位置为0 //循环结束之后, newScores 数组为:89 0 64 91 0 52 79 newScores [i] = scores[i]; } } Arrays.sort(realScores); //排序,然后取最后三个成绩,就是成绩为前三的。
你这个程序好多语法错误:
第4行,定义方法怎么用int[]?
第7行,初始化成绩数组怎么是new int[j](⊙o⊙)…
第9行,条件是或,不是且
第17行,返回值是多余的
第23行,根本不用toString的方法
给你一个改进建议,不要用一个新数组了,题目没有要求,你直接改变原数组就行了
int j = 0; int[] newScores = new int[j];
你这里将newScores数组的大小设置为0了。所以运行到newScores[j] = scores[i];这里会报错 java.lang.ArrayIndexOutOfBoundsException(数组下标越界异常)。
Java入门第一季(IDEA工具)升级版
1165552 学习 · 17587 问题
相似问题