04 氣泡排序
package main
import "fmt"
func main() {
var arr [10]int = [10]int{9, 1, 5, 6, 8, 2, 10, 7, 4, 3}
//外層執行一次內層執行一週
//外層控制行
for i := 0; i < len(arr)-1; i++ {
//內層控制列
for j := 0; j < len(arr)-1-i; j++ {
//滿足條件進行交換 大於號 升序 小於號 降序
if arr[j] < arr[j+1] {
//交換資料
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
fmt.Println(arr)
}
05 隨機數做一個陣列去重
第一: 隨機數使用
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
//1、匯入標頭檔案 math/rand time
//2、隨機數種子
//3、建立隨機數
//建立隨機數種子 進行資料混淆
rand.Seed(time.Now().UnixNano())
//偽隨機數 使用的1970.1.1.0.0.0
//fmt.Println(rand.Intn(10))//取模10 得到0-9
for i := 0; i < 10; i++ {
fmt.Println(rand.Intn(10))
}
}
第二:陣列去重
package main
import (
"math/rand"
"time"
"fmt"
)
func main0601() {
rand.Seed(time.Now().UnixNano())
var arr [10]int
for i := 0; i < len(arr); i++ {
arr[i] = rand.Intn(100)
}
fmt.Println(arr)
for i := 0; i < len(arr)-1; i++ {
for j := 0; j < len(arr)-1-i; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
fmt.Println(arr)
}
func main0602() {
//猜數字 1-100
rand.Seed(time.Now().UnixNano())
num := rand.Intn(100) + 1
value := 0
for {
fmt.Println("請輸入一個數字:")
fmt.Scan(&value)
if num > value {
fmt.Println("您輸入的數字太小了")
} else if num < value {
fmt.Println("您輸入的陣列太大了")
} else {
fmt.Println("您猜對了")
break
}
}
}
//陣列去重
func main() {
//隨機雙色球彩票
//紅色 1-33 選擇6個 不能重複 藍球 1-16 選擇1個 可以和紅球重複
rand.Seed(time.Now().UnixNano())
var red [6]int
for i := 0; i < len(red); i++ {
v := rand.Intn(33) + 1
for j := 0; j < i; j++ {
//資料重複
if v == red[j] {
//重新隨機
v = rand.Intn(33) + 1
//將j賦值為-1在迴圈執行到上面是進行++操作後值為0 也就相當於重新比對
j = -1
}
}
//將沒有重複的數字新增到陣列中
red[i] = v
}
fmt.Println("紅球:", red, "藍球:", rand.Intn(16)+1)
}