中易网

JAVA随机输出10个数不重复并且按顺序从小到大排列,用java.lang.Math.random()语句

答案:1  悬赏:50  
解决时间 2021-01-13 23:25
  • 提问者网友:眉目添风霜
  • 2021-01-13 11:15
JAVA随机输出10个数不重复并且按顺序从小到大排列,用java.lang.Math.random()语句
最佳答案
  • 二级知识专家网友:山河有幸埋战骨
  • 2021-01-13 12:09
public class text2 {
public static void main(String[] args) {
sort();
}

// 方法体1:用Math.random()方法生成随机整数
private static int createNO() {
// math.random生成的随机数是0~1之间的小数,百倍之后取整
int ran = (int) (100 * Math.random());
return ran;
}

// 方法体2:向random数组中添加十个不同的元素
private static int[] random() {
// 定义十个元素的数组用来存放十个随机数
int random[] = new int[10];
// 定义一个布尔类型的变量flg 当flg为true时,才向输入random中添加元素; 初始化为true;
boolean flg = true;
for (int i = 0; i < 10; i++) {
// while(true)死循环,如果ran的值在random数组中存在,
// 就通过次死循环再一次执行createNO方法更新ran的值,
// 直到符合条件:此次ran的值不同于random数组的每一个元素时,break跳出死循环,执行i循环
while (true) {
// 调用createNO方法,每次循环随机生成一个整数
int ran = createNO();
for (int j = 0; j <= i; j++) {
// 判断random数组中已经存在的元素是否含有本次i循环得到的ran的值
// 如果有,这个“break”是用来跳出j的循环,之后执行死循环,更新ran值
// 同时flg赋值false
if (random[j] == ran) {
flg = false;
break;
}
}
// 当flg为true时,说明random已经存在的元素没有与此次死循环更新得到的ran的值相同,
// 则将ran的值添加进random数组
// 跳出死循环,执行i循环:注:这个break是用来跳出while(true)的死循环的
if (flg == true) {
random[i] = ran;
break;
}

}
}
// 打印出已经添加十个元素的random数组中的每一个元素,但是没有排序
System.out.println("本次数组未排序噢~");
for (int k = 0; k < random.length; k++) {
System.out.println(random[k]);
}
return random;
}

// 方法体3:数组的排序方法:
private static void sort() {
// 调用random()方法获取数组
int sortRandom[] = random();
int p;
// 用传说中的冒泡排序····将未排序的数组按照从小到大的数序排序
for (int i = sortRandom.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (sortRandom[j] > sortRandom[j + 1]) {
p = sortRandom[j];
sortRandom[j] = sortRandom[j + 1];
sortRandom[j +1] = p;
}
}
}
System.out.println("本次数组已经排序了噢··");
for (int i = 0; i < sortRandom.length; i++) {
System.out.println(sortRandom[i]);
}
}
}

运行结果:
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息