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;
}
}
}
要用冒泡排序。你这是求最大的数 而且 代码还错了。return a;应该放在倒数第二个大括号 上面;
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); }
int []d=new immoc3().aaa(b); 这一行也错了 非静态调用静态的一种方法是这样;或者public static int[] aaa(){}