Golang程序 打印矩阵的边界元素
什么是边界元素?
在go编程语言中,矩阵的边界元素是位于矩阵外边缘的元素。它们位于四个位置,即第一行、最后一行、第一列和最后一列。在一个大小为m x n的矩阵中,顶部边界元素是array[0
][0]到array[0][n-1]
范围内的元素,底部边界元素是array[m-1][0]
到array[m-1][n-1]
范围内的元素,左侧边界元素是array[0][0]
到array[m-1
][0]范围内的元素,而右侧边界元素是array[0
][n-1]到array[m-1
][n-1]的元素。
算法
- 第1步 – 首先,我们需要导入fmt包。
-
第2步 – 然后,创建一个名为printBoundary()的函数,接受矩阵作为参数。将获得的矩阵的行和列存储在不同的变量中。
-
第 3步 – 现在,逐一遍历矩阵的每一行和每一列,并打印各自的行和列作为边界元素。
-
第4步 – 这里要注意,为了避免多次打印角元素,从第2行的位置开始下一个循环。
-
第 5步 – 一旦每一行和每一列被迭代,就打印相应的元素。现在,启动main()函数。这里初始化一个矩阵,并为其赋值。
-
第6步 – 然后,通过使用for循环和fmt.Println()函数在屏幕上打印相应的矩阵。一旦矩阵被打印出来,通过传递矩阵作为参数,调用printBoundary()函数。
-
第7步– 通过这种方式,矩阵的边界元素被打印出来。现在,使用更多的矩阵并在屏幕上打印它们的边界元素。
例子
在这个例子中,我们将编写一个go语言程序,使用一个外部函数打印矩阵的边界元素。我们将按顺时针方向打印边界元素,并将使用for循环和if条件来实现这一结果。
package main
import "fmt"
func printBoundary(matrix [][]int) {
rows := len(matrix)
cols := len(matrix[0])
// Print the first row
for i := 0; i < cols; i++ {
fmt.Print(matrix[0][i], " ")
}
// Print the last column
for i := 1; i < rows; i++ {
fmt.Print(matrix[i][cols-1], " ")
}
// Print the last row
for i := cols - 2; i >= 0; i-- {
fmt.Print(matrix[rows-1][i], " ")
}
// Print the first column
for i := rows - 2; i > 0; i-- {
fmt.Print(matrix[i][0], " ")
}
}
func main() {
matrix1 := [][]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
var rows int = len(matrix1)
var cols int = len(matrix1[0])
// printing matrix
fmt.Println("The given matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix1[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix1)
fmt.Println()
fmt.Println()
matrix2 := [][]int{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}
rows = len(matrix2)
cols = len(matrix2[0])
// printing matrix
fmt.Println("The second matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix2[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix2)
fmt.Println()
fmt.Println()
matrix3 := [][]int{{1, 2, 3}, {4, 5, 6}}
rows = len(matrix3)
cols = len(matrix3[0])
// printing matrix
fmt.Println("The given matrix is:")
for i := 0; i < rows; i++ {
for j := 0; j < cols; j++ {
fmt.Print(matrix3[i][j], "\t")
}
fmt.Println()
}
fmt.Println("Boundary elements of above matrix is:")
printBoundary(matrix3)
fmt.Println()
fmt.Println()
}
输出
The given matrix is:
1 2 3
4 5 6
7 8 9
Boundary elements of above matrix is:
1 2 3 6 9 8 7 4
The second matrix is:
1 2 3 4
5 6 7 8
9 10 11 12
Boundary elements of above matrix is:
1 2 3 4 8 12 11 10 9 5
The given matrix is:
1 2 3
4 5 6
Boundary elements of above matrix is:
1 2 3 6 5 4
结论
我们已经成功地编译并执行了一个go语言程序,使用一个外部函数获得了一个矩阵的边界元素。该函数使用不同的for循环来遍历矩阵的每一行和每一列,并将每一行和每一列分别作为边界元素打印出来。