gpt4 book ai didi

GO:我正在尝试猜测我的号码,但我的程序无法正确解释数字

转载 作者:数据小太阳 更新时间:2023-10-29 03:43:15 25 4
gpt4 key购买 nike

package main

import "fmt"
import bf "bufio"
import "os"
import "strconv"

type SVC int

func main() {
fmt.Println("Loaded")
var gmber = bf.NewScanner(os.Stdin)
gmber.Scan()
i := 1
for i < 40 {
fmt.Println("\n")
i++
}
var input2 = bf.NewScanner(os.Stdin)
fmt.Println("Make a guess:")
var input21, err = strconv.Atoi(input2.Text())
var gmber1, err0 = strconv.Atoi(gmber.Text())
input2.Scan()
for {
if input21 == gmber1{
break
}
if input21 > gmber1 {
fmt.Println("Too high, Guess again")
input2.Scan()
}
if input21 < gmber1 {
fmt.Println("Too low, Guess again")
input2.Scan()
}
}
fmt.Println("You win!")
fmt.Println(err)
fmt.Println(err0)
}

当我运行这个程序时,我的程序总是吐出“Too low, Guess again”。我输入:100作为要猜的数字,然后猜到了101这个数字,它说太小了。我真的不知道现在该怎么办,有人明白为什么这个程序会这样做吗?笔记:input21 总是=0

最佳答案

您需要了解类型扫描器的工作原理。仔细阅读 type Scanner 及其方法的文档,并查看示例。

package bufio: type Scanner

例如,“Scan 将 Scanner 前进到下一个标记,然后可以通过 Bytes 或 Text 方法使用它。”

对于缓冲流输入,每个文件有多个扫描器是很危险的。

猜测您自己输入的数字并不有趣。使用随机数生成器,例如“package math/rand”。

用你的代码解释所有问题会花太长时间,所以这里有一个简单的例子,

package main

import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"time"
)

func main() {
rand.Seed(time.Now().UnixNano())
var number = rand.Intn(100)
fmt.Println("Make a guess:")
var scanner = bufio.NewScanner(os.Stdin)
for scanner.Scan() {
var guess, err = strconv.Atoi(scanner.Text())
if err != nil {
fmt.Print("Input error")
} else if guess == number {
break
} else if guess > number {
fmt.Print("Too high")
} else if guess < number {
fmt.Print("Too low")
}
fmt.Println(", Guess again:")
}
if scanner.Err() != nil {
fmt.Println("I give up!")
}
fmt.Println("You win!")
}

关于GO:我正在尝试猜测我的号码,但我的程序无法正确解释数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com