import java.util.Arrays; public class cz { public static void main(String[] args) { int[] scores = {91, -23, 18, 89, 119, 98, 87, -98}; int n = 0; Arrays.sort(scores); for (int i = scores.length - 1; i >= 0; i--) { if (scores[i] < 0 || scores[i] > 100) { continue; } n++; if (n > 3) { break; } System.out.println(scores[i]); }}
4 回答
已采纳
yanrun
TA贡献317条经验 获得超240个赞
第一你的for循环的循环变量i,没有定义类型,无法通过编译;第二数组长度为8,也就是说scores.length=8,而数组的下标是0到7,运行时会报下标越界的错误;第三,应该是i--而不是i++;第四,判断应该用if而不是while。
public static void main(String[] args) { int[] scores = {91, -23, 18, 89, 119, 98, 87, -98}; int n = 0; Arrays.sort(scores); for (int i = scores.length - 1; i >= 0; i--) { if (scores[i] < 0 || scores[i] > 100) { continue; } n++; if (n > 3) { break; } System.out.println(scores[i]); } }
Caballarii
TA贡献1123条经验 获得超629个赞
要学会看报错信息,你for循环里的i没有定义,改成int i=scores.length以后还有数组越界的错误。建议使用Eclipse等IDE,不要再傻傻的用命令行编译了
添加回答
举报
0/150
提交
取消