为了账号安全,请及时绑定邮箱和手机立即绑定

帮我瞅瞅这个哪错了行么

package immoc;

import java.util.Arrays;

public class immoc3 {

public static void main(String[] args){

immoc3 hello=new immoc3();

int[] b={ 89 , -23 , 64 , 91 , 119 , 52 , 73};

int[] d=immoc3.aaa(b);

System.out.println("考试的前三名是"+d[0]+d[1]+d[2]);

}

public int[] aaa(int[] a)

{

int c=0;

for(int i=0;i<a.length;i++)

{

if(a[i]<0)

continue;

else

c++;

for(int j=0;j<a.length;j++)

{

if(a[i]<a[j])

{

int b=a[j];

a[i]=a[j];

}

}

return a;

  }

 }

}


正在回答

3 回答

要用冒泡排序。你这是求最大的数 而且 代码还错了。return a;应该放在倒数第二个大括号 上面;

0 回复 有任何疑惑可以回复我~
#1

野猴子上山 提问者

非常感谢!
2015-07-23 回复 有任何疑惑可以回复我~
package immoc;
import java.util.Arrays;
public class immoc3 {
    public static void main(String[] args){
        immoc3 hello=new immoc3();
        int[] b={ 89 , -23 , 64 , 91 , 119 , 52 , 73};
        int[] d=immoc3.aaa(b);
        System.out.println("考试的前三名是"+d[0]+d[1]+d[2]);
    }
    
    public int[] aaa(int[] a){
        int c=0;//这是什么意思?
        for(int i=0;i<a.length;i++){
            if(a[i]<0) continue;//这两行干什么用的?有必要与0比较吗
            else c++;//这两行干什么用的?
            for(int j=0;j<a.length;j++){
                if(a[i]<a[j]){
                    int b=a[j];
                    a[i]=a[j];
                }
            }
            return a;// 这是什么意思
        }
    }
}

我把你的代码整理了一下,但是完全没看懂

所谓冒泡排序就是把最小的(最大的)移到最左边,每次内层循环次数少1次

int[] a = { 89, -23, 64, 91, 119, 52, 73 };
//int c = 0;
for (int i = 0; i < a.length; i++) { //主循环
    //if(a[i]<0) continue; else c++;
	for(int j=i;j<a.length;j++){ //副循环,j从i开始,i左边的排序已经排好,处理i下标右边
		if (a[i] < a[j]) {
			int b = a[j];
			a[j] = a[i];
			a[i] = b;				
		}
	}
	// return a;
}
	
for (int i : a) {
	System.out.println(i);
}


0 回复 有任何疑惑可以回复我~
#1

野猴子上山 提问者

灰常感谢,好人
2015-07-23 回复 有任何疑惑可以回复我~

int []d=new immoc3().aaa(b);  这一行也错了 非静态调用静态的一种方法是这样;或者public static int[] aaa(){}

 

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

举报

0/150
提交
取消

帮我瞅瞅这个哪错了行么

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号