首页 新闻 会员 周边

【Golang】想生成10个随机数(1-100)

0
悬赏园豆:5 [已关闭问题] 关闭于 2022-02-10 02:00

正确输出代码如下:

package main

import (
	"fmt"
	"math/rand"
	"time"
)

//随机生成10个整数(1-100之间),使用冒泡排序法进行排序,然后使用二分查找法,查找是否有90这个数,并显示下标,如果没有则显示"找不到该数"

func findNum(){
	rand.Seed(time.Now().UnixNano())
	var arr [10]int
	for j := 0;j < 10; j++{
		arr[j] = rand.Intn(11)
		loop:
		for k := 0; k < j; k++{
			if arr[k] == arr[j]{
				arr[j] = rand.Intn(11)
				goto loop
			}
		}
	}
	fmt.Println(arr)
}

func main(){
	findNum()
}

错误代码如下:

package main

import (
	"fmt"
	"math/rand"
	"time"
)

//随机生成10个整数(1-100之间),使用冒泡排序法进行排序,然后使用二分查找法,查找是否有90这个数,并显示下标,如果没有则显示"找不到该数"

func findNum(){
	rand.Seed(time.Now().UnixNano())
	var arr [10]int
	for j := 0;j < 10; j++{
		//将随机数赋值
		arr[j] = rand.Intn(11)
		//循环j-1次,判断arr[K]是否等于arr[j],如果等于,则重新取随机数给arr[j]
		for k := 0; k < j; k++{
			//loop位置放在这里是为了方便不用每次值相同还要重新循环判断
			loop:
				if arr[k] == arr[j]{
					arr[j] = rand.Intn(11)
					goto loop
				}
		}
	}
	fmt.Println(arr)
}

func main(){
	findNum()
}


问题:
我想生成10个随机数(1-100),但是发现这个loop放的位置出来的效果和我想象的不一样,错误代码会生成有重复值的数组。

Null-Zero-One-Null的主页 Null-Zero-One-Null | 菜鸟二级 | 园豆:202
提问于:2022-02-09 19:26
< >
分享
所有回答(1)
0

很详细 拿走了 TIM

jianzizai | 园豆:212 (菜鸟二级) | 2022-02-16 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册