为了账号安全,请及时绑定邮箱和手机立即绑定

Go Lang 打印输入数组

Go Lang 打印输入数组

Go
蛊毒传说 2021-08-10 20:41:18
我现在正在学习 Go lang,在尝试打印输入的数组时遇到了问题。我的代码是这样的:package mainimport (    "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.
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

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])

    }

  fmt.Println(a)

 }


查看完整回答
反对 回复 2021-08-10
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

还不能复制问题。对于例如:


package main


import (

    "bytes"

    "fmt"

    "io"

)


func main() {

    var n int

    sampleInput := bytes.NewBufferString("3 1 2 3")

    fmt.Fscan(sampleInput, &n)

    set(sampleInput, n)

}


func set(input io.Reader, n int) {

    a := make([]int, n)

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

        fmt.Fscan(input, &a[i])

    }

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

        fmt.Println(a[y])

    }

    return

}

是您程序的变体。它具有预期的行为:它打印读取到切片中的数字 1 2 3。


查看完整回答
反对 回复 2021-08-10
?
aluckdog

TA贡献1847条经验 获得超7个赞

i:=0

var a[5] int

for(i<5){

fmt.Print("Enter Input")

var input int

fmt.Scanf("%d",&input)

a[i]=input

i+=1

}

fmt.Print(a)

这似乎对我有用。请参考。


查看完整回答
反对 回复 2021-08-10
  • 3 回答
  • 0 关注
  • 555 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信