亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為啥第三個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?

正在回答

5 回答

是減一


0 回復 有任何疑惑可以回復我~

?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后面必須加一;

1 回復 有任何疑惑可以回復我~

https://img1.sycdn.imooc.com//5c46e1be00018ac706190564.jpg最易懂的冒泡排序

0 回復 有任何疑惑可以回復我~

你可以使用Arrays.sort(數組名);來給數組排序(升序)

Arrays類是數組的實現類,里面提供了很多操作數組的方法,非常方便使用!有興趣可以去了解一下。

如果想要用循環來給數組排序的話,必須要使用雙重for循環哦,我所知道的有冒泡排序和選擇排序兩種,你可以在網上搜索,有很多博客都介紹了這兩種排序方式的用法。

1 回復 有任何疑惑可以回復我~
import?java.util.Arrays;
public?class?Demo?{?/**??*?@param?args??*/?
public?static?void?main(String[]?args)?{?
?//?TODO?Auto-generated?method?stub?????????
??????int?scores[]={89,-23,64,91,119,52,73};?
??????Demo?mo=new?Demo();????????
??????mo.sortScore(scores);?
???}?
???public?void?sortScore(int[]?scores)?{?
????//?TODO?Auto-generated?method?stub??
????Arrays.sort(scores);??
????for(int?i=scores.length-1,sum=0;i>=0&&sum<3;i--){???
????if(scores[i]<0||scores[i]>100)????
????continue;???
????System.out.println(scores[i]);
???????sum++;????
???????}?
??????}
????}

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為啥第三個for循環沒能實現排序呀,或者大家有其他實現排序的方法嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號