vlambda博客
学习文章列表

Gol语言学习笔记值冒泡排序,猜数字小游戏

猜数字

package main

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

func CreateNum(p *int) {
 //设置种子
 number := time.Now().UnixNano()
 rand.Seed(number)
 var num int
 for {
  num = rand.Intn(10000) //四位数
  if num >= 1000 {
   break
  }
 }
 //fmt.Println("num=",num)
 // 把num的地址放在p
 *p = num
}
func GetNum(s []int, num int) {
 s[0] = num / 1000       //取千位
 s[1] = num % 1000 / 100 //取百位
 s[2] = num % 100 / 10   //取十位
 s[3] = num % 10         //取个位
}
func OnGame(randSlice []int) {
 var num int
 keySlice := make([]int, 4)
 for {
  for {
   fmt.Printf("请输入一个四位数:")
   fmt.Scan(&num)

   if 999 < num && num < 10000 {
    break
   }
   fmt.Println("输入的数不符合要求...")
  }
  //fmt.Println("num=",num)
  GetNum(keySlice, num)
  //fmt.Println("keySlice=",keySlice)
  n := 0
  for i := 0; i < 4; i++ {
   if keySlice[i] > randSlice[i] {
    fmt.Printf("第%d位大了一点\n", i+1)
   } else if keySlice[i] < randSlice[i] {
    fmt.Printf("第%d位小了一点\n", i+1)
   } else {
    fmt.Printf("第%d位猜对了\n", i+1)
    n++
   }
  }
  if n == 4 {
   fmt.Println("恭喜您!全部猜对了!")
   break //跳出最外层循环
  }
 }
}
func main() {
 fmt.Println("******欢迎进入猜数字游戏******")

 var randNum int
 CreateNum(&randNum)

 //fmt.Println("randNum=",randNum)

 randSlice := make([]int, 4) //保留四位数字的每一位

 GetNum(randSlice, randNum)  //切片是引用传递
 //fmt.Println("randSlice=",randSlice)
 OnGame(randSlice)

}

冒泡排序

package main

import (
 "fmt"
 "sort"
)

func main() {
 list := []int{4, 9, 3, 84, 85, 31, 80, 37, 81, 93, 27, 12, 23, 2189}
 fmt.Println(list)
 BubbleAsort(list)
 BubbleZsort(list)
 //sort实现排序
 sort.Ints(list)
 fmt.Println(list)
}

// 从小到大
func BubbleAsort(list []int) {
 for i := 0; i < len(list)-1; i++ {
  for j := i + 1; j < len(list); j++ {
   if list[i] > list[j] {
    list[i], list[j] = list[j], list[i]
   }
  }
 }
 fmt.Println(list)
}

// 从大到小
func BubbleZsort(list []int) {
 for i := 0; i < len(list)-1; i++ {
  for j := i + 1; j < len(list); j++ {
   if list[i] < list[j] {
    list[i], list[j] = list[j], list[i]
   }
  }
 }
 fmt.Println(list)
}

这是参考网上的复现的。