Go Lang 打印输入数组

我现在正在学习 Go lang,在尝试打印输入的数组时遇到了问题。我的代码是这样的:


package main


import (

    "fmt"

)


func main() {

    var n int

    fmt.Scan(&n)

    set(n)

}


func set(n int) {

    a := make([]int, n)

    for i := 0; i < n; i++ {

        fmt.Scan(&a[i])

    }

    for y := 0; y < n; y++ {

        fmt.Println(a[y])

    }

    return

}

我的问题是当输入一个数字作为数组的大小时,该数字也总是被打印出来。就像我输入 8 作为数组大小然后输入数组值例如 10 9 8 7 6 5 4 3 然后我得到错误的输出:8 10 9 8 7 6 5 4.Iit 应该是 10 9 8 7 6 5 4 3.


蛊毒传说
浏览 556回答 3
3回答

小唯快跑啊

package mainimport ("fmt")func main() {&nbsp; var n int&nbsp; fmt.Scan(&n)&nbsp; set(n)}func set(n int) {&nbsp; a := make([]int, n)&nbsp; for i := 0; i < n; i++ {&nbsp; &nbsp; &nbsp; fmt.Scan(&a[i])&nbsp; &nbsp; }&nbsp; fmt.Println(a)&nbsp;}

牧羊人nacy

还不能复制问题。对于例如:package mainimport (&nbsp; &nbsp; "bytes"&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "io")func main() {&nbsp; &nbsp; var n int&nbsp; &nbsp; sampleInput := bytes.NewBufferString("3 1 2 3")&nbsp; &nbsp; fmt.Fscan(sampleInput, &n)&nbsp; &nbsp; set(sampleInput, n)}func set(input io.Reader, n int) {&nbsp; &nbsp; a := make([]int, n)&nbsp; &nbsp; for i := 0; i < n; i++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Fscan(input, &a[i])&nbsp; &nbsp; }&nbsp; &nbsp; for y := 0; y < n; y++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(a[y])&nbsp; &nbsp; }&nbsp; &nbsp; return}是您程序的变体。它具有预期的行为:它打印读取到切片中的数字 1 2 3。

aluckdog

i:=0var a[5] intfor(i<5){fmt.Print("Enter Input")var input intfmt.Scanf("%d",&input)a[i]=inputi+=1}fmt.Print(a)这似乎对我有用。请参考。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go