Mars3649278
2018-11-09 00:01
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { HelloWorld hello = new HelloWorld(); int[] rank = {89, -23, 64, 91, 119, 52, 73}; hello.getArrays(rank); }//定义方法完成成绩排序并输出前三名的功能 public int[] getArrays(int []rank) { int max3=rank[0]; int max2=rank[0]; int max1=rank[0]; int[] nums = {1, 2, 3}; for (int i = 0; i < rank.length-1; i++) { if (rank[i] > 1 && rank[i] < 100) { if (rank[0] < rank[i]) { max1 = rank[i]; } } } for (int i = 0; i < rank.length-1; i++) { if (rank[0] <rank[i]&&rank[i]<max1) { if (rank[i] > 1 && rank[i] < 100) { max2 =rank[i]; } } } for(int i=1;i<rank.length;i++){ if(rank[i]>rank[i]){ max3=rank[i]; } } nums[0]=max1;nums[1]=max2;nums[2]=max3; System.out.println(Arrays.toString(nums)); return nums; } }
输出是91 89 89?
不需要去给它定义三个初始值,定义一个就够了
int max3=rank[0]; int max2=rank[0]; int max1=rank[0];
其次 int[] nums = {1, 2, 3};既然只定义了一个初始值来接收,就不需要在创建一个数组了 还有一个很重要的,(rank[i] > 1 && rank[i] < 100) &&的意思是必须满足两边的表达式才会被执行,仔细看,有什么数是大于1同时又小于100的,没有。所以在这里,可以用 || 来运算,||的意思是两边表达式只要满足一边就行了。
还有很多地方也不对,但是我懒的打字了。
写的这么复杂,如果你想用这种,就先定义一个方法,再定义一个方法调用你前面的那个方法
int max3=rank[0]; //rank[0]等于89 max3=89 for(int i=1;i<rank.length;i++){ //相同数比较 if(rank[i]>rank[i]){ //没有进入 max3=rank[i]; } } max3没有被重新赋值
Java入门第一季(IDEA工具)升级版
1165574 学习 · 17587 问题
相似问题