Go语言打印输入的数组

huangapple go评论93阅读模式
英文:

Go Lang Print Inputted Array

问题

我现在是你的中文翻译。以下是你要翻译的内容:

我现在正在学习Go语言,当我尝试打印输入的数组时遇到了一个问题。我的代码如下:

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。正确的输出应该是10 9 8 7 6 5 4 3。

英文:

I am studying Go lang right now and I encountered a problem when trying to print inputted Array. My code is like this:

package main

import (
	&quot;fmt&quot;
)

func main() {
	var n int
	fmt.Scan(&amp;n)
	set(n)
}

func set(n int) {
	a := make([]int, n)
	for i := 0; i &lt; n; i++ {
		fmt.Scan(&amp;a[i])
	}
	for y := 0; y &lt; n; y++ {
		fmt.Println(a[y])
	}
	return
}

my problem is when Inputted a number as a size for the array, that number always get printed too.
Like when I inputted 8 as the array size then followed by the array value for example 10 9 8 7 6 5 4 3 then I get the wrong output: 8 10 9 8 7 6 5 4.Iit should be 10 9 8 7 6 5 4 3.

答案1

得分: 3

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)
}
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)
}
英文:
package main
import (&quot;fmt&quot;)
func main() {
  var n int
  fmt.Scan(&amp;n)
  set(n)
}

func set(n int) {
  a := make([]int, n)
  for i := 0; i &lt; n; i++ {
      fmt.Scan(&amp;a[i])
    }
  fmt.Println(a)
 }

答案2

得分: 1

无法复制问题。 例如:

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。

英文:

Can not duplicate problem yet. For example:

package main

import (
	&quot;bytes&quot;
	&quot;fmt&quot;
	&quot;io&quot;
)

func main() {
	var n int
	sampleInput := bytes.NewBufferString(&quot;3 1 2 3&quot;)
	fmt.Fscan(sampleInput, &amp;n)
	set(sampleInput, n)
}

func set(input io.Reader, n int) {
	a := make([]int, n)
	for i := 0; i &lt; n; i++ {
		fmt.Fscan(input, &amp;a[i])
	}
	for y := 0; y &lt; n; y++ {
		fmt.Println(a[y])
	}
	return
}

is a variation of your program. It has the expected behavior: it prints the numbers 1 2 3 that it read into the slice.

答案3

得分: 0

以下是您提供的代码的中文翻译:

i := 0
var a [5]int
for i < 5 {
    fmt.Print("请输入输入:")
    var input int
    fmt.Scanf("%d", &input)
    a[i] = input
    i += 1
}
fmt.Print(a)

这段代码对我来说似乎是有效的。请参考。

英文:
i:=0
var a[5] int
for(i&lt;5){
fmt.Print(&quot;Enter Input&quot;)
var input int
fmt.Scanf(&quot;%d&quot;,&amp;input)
a[i]=input
i+=1
}
fmt.Print(a)

This seems to work for me.Please refer.

huangapple
  • 本文由 发表于 2014年8月27日 00:41:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/25510958.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定