如何在Go中的数组中读取数字列表

时间:2017-01-16 05:14:11

标签: arrays go input

我想读取用户给出的数字列表并对它们执行操作。

package main
import "fmt"

func main() {
    var n,c,i int
    var a []int    
fmt.Println("Enter the number of inputs")
 fmt.Scanln(&n)
fmt.Println("Enter the inputs")
 for i=0 ; i<n-1; i++ {
     fmt.Scanln(&c)
}
    fmt.Println(a[i]) 
}

有人可以帮助我。

2 个答案:

答案 0 :(得分:2)

您使用的是切片而不是数组。只有在编译时知道长度时才能使用数组。

package main

import "fmt"

func main() {
    length := 0
    fmt.Println("Enter the number of inputs")
    fmt.Scanln(&length)
    fmt.Println("Enter the inputs")
    numbers := make([]int, length)
    for i := 0; i < length; i++ {
        fmt.Scanln(&numbers[i])
    }
    fmt.Println(numbers)
}

答案 1 :(得分:1)

我注意到您的代码有几个问题:

  • a slice是一个更合适的数据结构,因为输入的长度在编译时是未知的
  • 每个输入的值不会保存到数组中
  • 通过直接插入数组
  • 可以完全省略变量c
  • 扫描过程中的一个错误

我已在以下代码中应用了这些修补程序:

package main

import "fmt"

func main() {
  var n, i int
  fmt.Println("Enter the number of inputs")
  fmt.Scanln(&n)

  fmt.Println("Enter the inputs")
  a := make([]int, n)
  for i = 0; i < n; i++ {
    fmt.Scanln(&a[i])
  }

  fmt.Println(a)
}