有点问题请老师解答一下
来源:4-8 编程练习
CC陈十一
2019-03-13 20:30:36
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Math.random()</title>
</head>
<body>
<script>
//补充代码
function rand(m,n){
var a=n-m+1;
return Math.floor(Math.random()*a+m)
}
//var rand1=rand(1,100);
var numb=[];
for(i=0;i<10;i++){
numb[i]=rand(1,100)//为什么如果是numb[i]=rand1,就会变成十个一样的数字
}
var rank=numb.sort(function(x,y){return y-x})+"<br/>";
var big=numb[0];//为什么这里定义成rank[0],rank[9]输出的就不是最大最小值,rank不应该是排列好的数组吗?
var little=numb[9];
document.write(rank);
document.write("这组数中最大的值是:"+big+",最小的值是:"+little);
</script>
</body>
</html>
2回答
同学你好,第二次贴的代码有以下几个问题:
1、“numb[i]=rand1“,因为在for循环外面执行了一次,值是固定的,所以循环出来的是一样的数。
2、在排序的时候进行换行,会把随机数隔开,如下:
例如随机数是98,那么br换行就变成了,“9 8 ,”,所以,取出来的最大值和最小值是不对的。
想把随机出来的数组跟最大值最小值不在一行显示,可以在输出数组的时候进行换行,参考下图:
自己试一试哦,如果帮助到了你,欢迎采纳。
祝学习愉快!
山河远阔ZZ
2019-03-14
同学你好。
代码中是做的降序排序:
降序排序的话,数组中的第一个数值就是最大值,最后一个数值就是最小值,所以想获取排序中的最大值和最小值,通过下标获取即可。
数组中存放十个数值,rank[0]代表第一个值,rank[9]代表最后一个值;
如果帮助到了你,欢迎采纳。
祝学习愉快!
相似问题