package jin;
import java.util.Arrays;
public class HelloWorld1{
public static void main(String[] args){
HelloWorld1 hello = new HelloWorld1();
int[] scores = {89,-23,64,91,119,52,73};
Arrays.sort(scores);
int[] newArrays = hello.getnewArrays(scores);
System.out.println(Arrays.toString(newArrays));
}
public int[] getnewArrays(int[] scores){
for(int i = 0; i<scores.length; i++){
if(scores[i]>100 || scores[i]<0){
continue;
}
int[] newArrays= {scores[i]};
// System.out.println(Arrays.toString(newArrays));
}
return newArrays; //(这里为什么不能返回数组?????)
//(而在方法中设定无返回值,直接输出newArrays就可以! 求解,谢谢谢!!!!)
}
}
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
int[] scores =new int[]{89,-23,64,91,119,52,73};
System.out.println("考试成绩的前三名为:");
hello.print(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void print(int[] scores){
//统计有效成绩个数
int count = 0;
//先对数组进行排序(升序)
Arrays.sort(scores);
//输出前三名(由于是升序,所以需要倒序遍历)
for(int i=scores.length-1;i>=0;i--){
if(scores[i]<0 || scores[i]>100){
//如果成绩不在0-100范围之内,忽略结此次成绩,束本次循环,接下一次循环,否则继续
continue;
}
//有效,个数加1
count++;
//输出成绩
System.out.println(scores[i]);
//如果成绩个数大于三了,结束循环
if(count>=3){
break;
}
}
}
import java.util.Arrarys;
public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
int [] scores=new int[] {89,-23,64,91,199,52,73}
HelloWorld score = new HelloWorld();
score.fa(scores);
}
//定义方法完成成绩排序并输出前三名的功能
public void fa (int [] scores){
int k;
Arrares.sort(scores);
System.out.println("考试成绩的前三名为");
for(int i=0; i<scores.length;i++){
if(scores[i]>=0 && scores[i]<=100 ){
System.out.println(scores[i]);
k++;
if(k==2){
break;
}
}
}
}
看看我写的超简单
因为你的数组创建在循环里了= =也就是你每循环一次,都创建一次= =你把他放到for前面创建就行了。不过你整个代码倒错都是错,拿出去结果也是错的