[英]How do I create a 2D-array from calculation of a formula using two arrays as input?
[英]How to take input in 2d-array using Golang?
如您在此代码( .go )中所见,Golang 正在尝试输入 2d arrays 并将偶数存储在偶数数组中,并将奇数存储在奇数数组中。 但是我们可以在它的 output 中看到,正如我在下面的注释代码之后提到的它在输入期间跳过索引? 甚至数组无法获得偶数值。 做错了什么?
package main
import (
"fmt"
)
func main() {
numbers := [4][4]int{}
even := [4]int{}
odd := [4]int{}
row := 4
col := 4
fmt.Println("Enter data in your 2-D Array")
for row = 0; row < 4; row++ {
for col = 0; col < 4; col++ {
fmt.Scanf("%d", &numbers[row][col])
if numbers[row][col]%2 == 0 {
even[row] = numbers[row][col]
} else {
odd[row] = numbers[row][col]
}
}
}
fmt.Println("Printing 2D Arrays", numbers)
fmt.Println("Print Even Array", even)
fmt.Println("Print Odd Array", odd)
}
//My output is as follow
//Printing 2D Arrays [[1 0 2 0] [3 0 4 0] [5 0 6 0] [7 0 8 0]]
//Print Even Array [0 0 0 0]
//Print Odd Array [1 3 5 7]
您的输入中有 16 个元素,您尝试将这些元素存储在长度为 4 的even
数组和长度为 4 odd
数组中。 那么很明显在那里跳过8个元素。 您可以使用 append 到偶数和奇数 arrays。
注意:- 当您声明二维数组时, [rows][columns]int{}
。 迭代时要注意,否则可能是超出范围的恐慌。
package main
import (
"fmt"
)
func main() {
numbers := [4][4]int{}
var even []int
var odd []int
//row := 2
//col := 4
fmt.Println("Enter data in your 2-D Array")
for row := 0; row < 4; row++ {
for col := 0; col < 4; col++ {
fmt.Scanf("%d", &numbers[row][col])
if numbers[row][col]%2 == 0 {
even = append(even, numbers[row][col])
} else {
odd = append(odd, numbers[row][col])
}
}
}
fmt.Println("Printing 2D Arrays", numbers)
fmt.Println("Print Even Array", even)
fmt.Println("Print Odd Array", odd)
//Printing 2D Arrays [[1 2 3 4] [5 6 7 8] [9 10 11 12] [13 14 15 16]]
//Print Even Array [2 4 6 8 10 12 14 16]
//Print Odd Array [1 3 5 7 9 11 13 15]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.