以下是自己的思路编的,哪位大神看下哪里有错,编完后只显示运行成功,没有出现结果。
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.Top(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void Top(int[] scores){
Arrays.sort(scores);
for(int i=0;i<scores.length;i++){
int j=0;
if(scores[i]>0&&scores[i]<100){
j=j+1;
if(j>3){
System.out.println("考试成绩前三名是:");
for(int k=scores.length;k>scores.length-4;k--){
System.out.println(scores[k]);
}
}
}
}
}
你把j=0一直放在for循环里面了,导致不会执行if(j>3)之后的命令,所以没有结果。而且后面的程序也有问题
我试了一遍 ,可以运行
package com.imooc;
import java.util.Arrays;
public class aaa {
//导入java.util.Arrays;
public static void main(String[] args) {
// 创建对象,对象名为hello
aaa hello = new aaa();
// 调用方法并将返回值保存在变量中
int[] nums = hello.getArray(8);
// 将数组转换为字符串并输出
System.out.println(Arrays.toString(nums));
}
/*
* 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
* 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
*/
public int[] getArray(int length) {
// 定义指定长度的整型数组
int[] nums = new int[length];
// 循环遍历数组赋值
for (int i=0;i<nums.length;i++ ) {
// 产生一个100以内的随机数,并赋值给数组的每个成员
nums[i]=(int)(Math.random()*100);
}
return nums; // 返回赋值后的数组
}
}
System.out.println(Arrays.toString(nums)); 这一行这么输出和题目要求不符。
该用一个for循环输出一个数后换行输出下一个数,应该就可以过了。