為啥第三個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?
2019-02-08
是減一
2019-02-08
?int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
???
?int max = nums[0]; // 假定最大值為數組中的第一個元素
?int min = nums[0]; // 假定最小值為數組中的第一個元素
?double sum = 0;// 累加值
?double avg = 0;// 平均值
???
?for (int i = 0; i <= nums.length-1; i++) { // 循環遍歷數組中的元素
??? // 如果當前值大于max,則替換max的值
?if(max<nums[i])
??? max=nums[i];
???
??? // 如果當前值小于min,則替換min的值
??? if(min>nums[i])
??? min=nums[i];
??? sum=sum+nums[i];
???
? ??}
?????????
????????? // 求平均值
???????? avg=sum/nums.length;
?????????
? ??System.out.println("數組中的最大值:" + max);
? ??System.out.println("數組中的最小值:" + min);
? ??System.out.println("數組中的平均值:" + avg);
?? length后面必須加一;
2019-01-22
2018-11-14
你可以使用Arrays.sort(數組名);來給數組排序(升序)
Arrays類是數組的實現類,里面提供了很多操作數組的方法,非常方便使用!有興趣可以去了解一下。
如果想要用循環來給數組排序的話,必須要使用雙重for循環哦,我所知道的有冒泡排序和選擇排序兩種,你可以在網上搜索,有很多博客都介紹了這兩種排序方式的用法。
2018-11-09