永发信息网

java 假设一个班级共35人, 学号从1~35, 请编写程序进行随机学号抽取, 每个学号不

答案:3  悬赏:50  手机版
解决时间 2021-01-27 05:23
  • 提问者网友:雾里闻花香
  • 2021-01-26 11:45
java 假设一个班级共35人, 学号从1~35, 请编写程序进行随机学号抽取, 每个学号不
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-01-26 13:24
import java.util.ArrayList;
  import java.util.List;
  import java.util.Random;

  public class SelectNo {
  public static void main(String[] args) {
  //将1-35号码放入List集合
  List list = new ArrayList();
  for (int i = 1; i < 36; i++) {
  list.add(""+i);
  }

  //新建一个List集合用来存放抽出来的号码
  List newList = new ArrayList();

  //随机抽取list集合中的一个元素,抽出后删除
  Random rd = new Random();
  int count = list.size();//集合中剩余号码

  while (count > 0) {
  int index = rd.nextInt(count);//抽出的号码的位置
  //放入新的集合
  newList.add(list.get(index));
  //删除原有集合的元素
  list.remove(index);

  count--;//原有集合少了一个
  }

  //输出号码
  for (int i = 0; i < newList.size(); i++) {

  System.out.print(newList.get(i)+" ");
  //每五个换行
  if(i%5 == 4){
  System.out.println("");
  }

  }

  }
  }
全部回答
  • 1楼网友:醉吻情书
  • 2021-01-26 15:43
兄弟,题目不全啊追问每个学号不能重复抽取, 直至所有学生抽取完毕, 将抽取结果按顺
序显示在控制台, 每行显示5个学号
  • 2楼网友:山有枢
  • 2021-01-26 14:45
public static void main(String[] args) {
Random r = new Random();
ArrayList list = new ArrayList();
int count =0;
while (list.size() < 35) {
int i = r.nextInt(35) + 1;
if (!list.contains(i)) {
list.add(i);
}
}
for (int i = 0; i < 35; i++) {
if (i !=5 && i!=10 && i!=15 && i!=20 && i != 25 && i != 30) {
System.out.print(list.get(i)+" ");
} else {
System.out.println(" ");
System.out.print(list.get(i)+" ");
}
}
}
代码改了一下,应该能用了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯