請問為什么第三個for循環沒有實現排序,或者說有更好的排序代碼嗎
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?
2018-11-15
不需要去給它定義三個初始值,定義一個就夠了
還有很多地方也不對,但是我懶的打字了。
2018-11-09
寫的這么復雜,如果你想用這種,就先定義一個方法,再定義一個方法調用你前面的那個方法
2018-11-09