输入随机8个数 然后按从小到大的顺序排列
我是这么写的:
import java.util.*;
public class app5_5 {    public static void main(String args[]) {
        Random ran=new Random();
        int c[]=new int[8];
        for(int i=0;i<8;i++){
            c[i]=ran.nextInt(100);
            
        }
        int d;
        for(int i=0;i<8;i++){
           d=c[i];
           for(int j=0;j<8;j++){
            if(d>c[j])
                d=c[j];
           }
           System.out.print(d+" "); 
        }
    }
    
    
}可是结果却是输出的数据都是同一个数
新手 把基础的弄懂先

解决方案 »

  1.   

      for(int i=0;i<8;i++){
      d=c[i];
      for(int j=0;j<8;j++){
      if(d>c[j])
      d=c[j];
      }
      System.out.print(d+" ");  
      }
    你的这句虽然外循环有d=c[i] ,但是内循环每次都将数组c的最小值赋值给d,所以你的d只能是数组c的最小值
      

  2.   

    public static void main(String args[]) {
    Random ran = new Random();
    int c[] = new int[8];
    for (int i = 0; i < 8; i++) {
    c[i] = ran.nextInt(100); } //输出查看随机数,没有问题
    for (int i = 0; i < c.length; i++) {
    System.out.println(c[i]);
    }


    //以前的算法,每次输出都那取的第i个和所有的比,结果得到最小的当然都是同一个数

    //使用其他排序吧,例如选择排序
    int d = 0;
    int index = 0;
    int temp = 0;
    for (int i = 0; i < 8; i++) {
    d = c[i];
    index = i;
    for (int j = i; j < 8; j++) {
    if (d > c[j])
    {
    d = c[j];
    index = j;
    }
    }
    if(index !=i)
    {
    temp = c[i];
    c[i] = c[index];
    c[index] = temp;
    }
    }


    for (int i = 0; i < c.length; i++) {
    System.out.print(c[i]+" ");
    }


    }
      

  3.   


    for (int i = 0; i < 8; i++) {
    d = c[i];
    for (int j = i; j < 8; j++) {//修改的地方  让j 从i 的位置开始循环
    if (d > c[j])
    d = c[j];
    }
    System.out.print(d + " ");
    }
      

  4.   

    for (int i = 0; i < 8; i++) {
                d = c[i];
                for (int j = i; j < 8; j++) {//修改的地方  让j 从i 的位置开始循环
                    if (d > c[j])
                        d = c[j];
                }
                System.out.print(d + " ");
            }
      

  5.   

    import java.util.*;public class TestSort {
     public static void sort(){
     
    Random ran = new Random();
    int c[] = new int[8]; for(int i=0;i<8;i++){
      c[i]=ran.nextInt(100);
    }
    //排序
    Arrays.sort(c);
    for(int i:c)
       System.out.print(i+" ");
     }
     public static void main(String[] args) {
      sort( );
     }
    }
      

  6.   

    或者你也可以放在list里面,然后通过集合排序 Collections.sort(list);
      

  7.   

    Arrays.sort(c);
            for(int i:c)
           System.out.print(i+" ");
    这一句