错在哪了 求解答

578a23d10001156605240388.jpg要求输出成绩的前三名

toola
浏览 1667回答 5
5回答

冰山点水

我把你回复我的代码里面错误的地方给你修改过来了,有时间可以把你的代码精简优化一下。import java.util.Arrays; public class Test4_2 { public static void main(String[] args) { Test4_2 test = new Test4_2(); int[] scores = { 89, -23, 64, 91, 119, 52, 73 }; // test.get(Arrays.sort(scores)); Arrays.sort(scores); test.get(scores);// Arrays。sort是没有返回值的 } public void get(int[] scores) { int count = 0; int[] grade = new int[3]; //声明并初始化数组grade for (int i = scores.length - 1; i >= 0; i--) { if ((0 < scores[i]) && (scores[i] < 100)) { count++;// 有效成绩个数  count++等同于count=count+1 if (count > 3) { break; } else { grade[count-1] = scores[i]; //把得到每一个有效的成绩保存到数组中 } } else { continue; } } System.out.println("成绩前三名为" + Arrays.toString(grade)); } }

冰山点水

局部变量的作用域问题,grade的作用域仅限于条件语句内,应该定义在循环体外,可在count变量后面定义并初始化grade。

至繁归于至简_

学到了东西了

yanrun

get方法里的grade是定义在for循环里的,输出语句在for循环外面没法访问。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java