import java.util.Scanner;
public class ds {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int[] tall=new int[10];
int[] tall1=new int[10];
for(int i=0;i<tall.length;i++){
System.out.print("请输入第"+(i+1)+"个学生的身高:");
tall[i]=input.nextInt();
tall1[i]=tall[i];
}
for(int i=0;i<tall.length-1;i++){
for(int h=0;h<tall.length-i-1;h++){
  if(tall[h]>tall1[h+1]){
          int temp=tall[h];
          tall[h]=tall1[h+1];
          tall1[h+1]=temp;
}
}    
}
 for (int i= tall1.length - 1; i >= 0; i--) {
  System.out.println(tall1[i]);
   }
 }
}
求教冒泡按身高输出是哪出了问题,一直出不来。另外不用sort()方法输出最大值怎么做?谢谢

解决方案 »

  1.   

    int max=0;
    for(int i=0;i<tall.length;++i)
    {
      if(max<tall[i])
      {
      max=tall[i];
      }
    }
      

  2.   

    不用开两个数组,排序之后是从低到高排序的,取到数组的最后一个元素就是最大值
    还有类名需要遵守java命名规范,首字母大写
    import java.util.Scanner;public class DS {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int[] tall = new int[10];
    for (int i = 0; i < tall.length; i++) {
    System.out.print("请输入第" + (i + 1) + "个学生的身高:");
    tall[i] = input.nextInt();
    }
    for(int i=0;i<tall.length;i++){
    for(int j=0;j<i;j++){
    if(tall[j]<tall[i]){
    int temp=tall[i];
    tall[i]=tall[j];
    tall[j]=temp;
    }
    }
    }
    for (int i = tall.length - 1; i >= 0; i--) {
    System.out.println(tall[i]);
    }
    }
    }
      

  3.   

     int[] tall1去掉,哪有这么冒泡的
           for (int i = 0; i < tall.length - 1; i++) {
                for (int h = 0; h < tall.length - i - 1; h++) {
                    if (tall[h] > tall[h + 1]) {
                        int temp = tall[h];
                        tall[h] = tall[h + 1];
                        tall[h + 1] = temp;
                    }
                }
            }
      

  4.   

    2搂循环条件写成
    for(int i=tall.length-1;i>=0;i--){
     for(int j=0;j<i;j++){
    才是冒泡的思想吧
      

  5.   


    lz要理解冒泡的原理,再来看这个程序就简单多了http://www.iteye.com/topic/552814