谁来帮我调试,调试!import java.util.*;
public class StudentSeat {
public static void main(String[] args) {
Random r = new Random();
int stu[] = new int[52];
stu[0] = 0;
for(int i = 0; i < 52; i++){
int temp = r.nextInt(52)+1;
for(int j = 0; j <= i; j++){
if(temp == stu[i]){
i--;
break;
}else
stu[i] = temp;
}
}
for(int i = 0; i < 52; i++){
System.out.print(stu[i] + " ");
}
}
}

解决方案 »

  1.   

    import java.util.*;public class StudentSeat {
    public static void main(String[] args) {
    Random r = new Random();
    int leap = 1;
    int stu[] = new int[52];
    stu[0] = 0;
    for (int i = 0; i < 52; i++) {
    int temp = r.nextInt(52) + 1;
    for (int j = 0; j < i; j++) {
    if (temp == stu[i]) {
    i--;
    leap = 0;
    break;
    }
    }
    if (leap == 1) {
    stu[i] = temp;
    }
    }
    for (int i = 0; i < 52; i++) {
    System.out.print(stu[i] + " ");
    }
    }
    }
    这样写还是有重复的数!!
    麻烦谁来帮我写一下
      

  2.   


     
      Random r = new Random(); 
      int stu[] = new int[52]; 
      
      boolean tempNum=true;
      
      for(int i = 0; i < 52; i++){ 
      
      int temp =0;
      for(int j = 0; j <= i; j++){ 
      temp = r.nextInt(52)+1;
      if(temp == stu[i]){ 
      tempNum = false;
      break;
      }
      } 
      if(tempNum)
      stu[i] = temp;  }
     
      for(int k = 0; k < 52; k++){ 
      System.out.print(stu[k] + " "); 
      } 
      试试
      

  3.   

    //给52个学生分配不重复的座位号,换个角度来实现,先按序号坐好,然后随机抽取座位号进行调换,这样效率高多了。import java.util.*; public class StudentSeat { 
    public static void main(String[] args) { 
    Random r = new Random(); 
    int[] stuSeat = new int[52];

    for(int i=0; i<stuSeat.length; i++)
    stuSeat[i] = i+1;



    for(int i=0; i<stuSeat.length; i++){
    int num = r.nextInt(51)+1;
    int temp = stuSeat[i];
    stuSeat[i] = stuSeat[num];
    stuSeat[num] = temp;
    }

    for(int i : stuSeat)
    System.out.println(i);

      

  4.   

    下面是我自己的!! 呵呵...import java.util.*;public class StudentSeat {
    public static void main(String[] args) {
    Random r = new Random();
    int leap = 1;
    int stu[] = new int[52];
    for (int i = 0; i < 52; i++) {
    int temp = r.nextInt(52) + 1;
    for (int j = 0; j <= i; j++) {
    if (temp == stu[j]) {
    i--;
    leap = 0;
    break;
    }
    }
    if (leap == 1) {
    stu[i] = temp;
    }
    leap = 1;
    }
    for (int i = 0; i < 52; i++) {
    System.out.print(stu[i] + " ");
    }
    }
    }
      

  5.   

    呵,刚那个没试,用这个吧
      Random r = new Random(); 
      HashSet<Integer> map = new HashSet<Integer>();
      
      while(true){
    int  temp = r.nextInt(10)+1;
    map.add(temp);
    if(map.size()==52)
    break;
      }
      
      
      // List<Integer> list = new ArrayList<Integer>();
      //list.addAll(map);
      //Collections.sort(list);
      for (Integer integer : map) {

    System.out.println(integer);
    }
      

  6.   

      Random r = new Random(); 
      HashSet <Integer> map = new HashSet <Integer>(); 
      
      while(true){ 
    int  temp = r.nextInt(50)+1; 
    map.add(temp); 
    if(map.size()==52) 
    break; 
      } 
      
      
      // List <Integer> list = new ArrayList <Integer>(); 
      //list.addAll(map); 
      //Collections.sort(list); 
      for (Integer integer : map) { System.out.println(integer); 
    }
      

  7.   

     Random r = new Random(); 
      HashSet <Integer> map = new HashSet <Integer>(); 
      
      while(true){ 
    int  temp = r.nextInt(52)+1; 
    map.add(temp); 
    if(map.size()==52) 
    break; 
      } 
      
      
      // List <Integer> list = new ArrayList <Integer>(); 
      //list.addAll(map); 
      //Collections.sort(list); 
      for (Integer integer : map) { System.out.println(integer); 
    }不好意思 ,呵呵,看花了
      

  8.   


    import java.util.*;public class StudentSeat {    public static void main(String[] args) {
            Random r = new Random();
            int stu[] = new int[52];
            stu[0] = 0;
            int j;
            for (int i = 0; i < 52; i++) {
                int temp = r.nextInt(52) + 1;
                for ( j = 0; j <= i; j++) {
                    if (temp == stu[j]) {
                        i--;
                        break;
                    }
                }
                if(j>i)
                    {
                        stu[i]=temp;
                    }
            }
            for (int i = 0; i < 52; i++) {
                System.out.println(stu[i] + " ");
            }
        }
    }
    LZ看看这个呢.
      

  9.   

    那个for(j = 0;j<=i;j++)的循环下面的那个if判断应该是让temp == stu[j]而不是stu[i]吧,要和它之前的所有数比,不是和当前查到的那个数stu[i]比.