英文:
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 (
"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
}
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 ("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)
}
答案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 (
"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
}
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<5){
fmt.Print("Enter Input")
var input int
fmt.Scanf("%d",&input)
a[i]=input
i+=1
}
fmt.Print(a)
This seems to work for me.Please refer.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论