稍微改了一下逻辑,系统先运算出数据,玩家给出数据,系统再给出答案
go中的scanf和printf方法和c语言有些相似
使用scanf和printf方法如果出现换行错误,请加上/n
读取玩家输入的数字,最后一定要加上换行符\n,否则循环会出现意外换行错误,Scanf传递的是地址,必须加上&
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
var PlayerNums int
maxNUM := 100
for {
rand.Seed(time.Now().Unix())
ScNUM := rand.Intn(maxNUM) //系统的随机数字
fmt.Printf("请输入你猜测的数字\n")//加上换行符
_, err := fmt.Scanf("%d\n", &PlayerNums) //读取玩家输入的数字,最后一定要加上换行符\n,否则循环会出现意外换行错误,Scanf传递的是地址,必须加上&
if err != nil {
fmt.Println(err)
return
}
if ScNUM-PlayerNums > 0 {
fmt.Println("你猜测的数字小了")
} else if ScNUM == PlayerNums {
fmt.Println("你猜测的数字和系统给出的一样!")
} else {
fmt.Println("你猜测的数字大了")
}
fmt.Printf("系统的结果是%d\n", ScNUM) //Printf传递是数值不用加&
}
}