Go语言程序打印矩阵边界元素
什么是边界元素?
在 Go 编程语言中,矩阵的边界元素是指位于矩阵外边缘的元素。它们位于四个位置,即第一行、最后一行、第一列和最后一列。在一个大小为 m x n 的矩阵中,顶部边界元素是矩阵[0][0] 到矩阵[0][n-1] 范围内的元素,底部边界元素是矩阵[m-1][0] 到矩阵[m-1][n-1] 范围内的元素,左侧边界元素是矩阵[0][0] 到矩阵[m-1][0] 范围内的元素,右侧边界元素是矩阵[0][n-1] 到矩阵[m-1][n-1] 范围内的元素。
算法
步骤 1 − 首先,我们需要导入 fmt 包。
步骤 2 − 然后,创建一个名为 printBoundary() 的函数,该函数接收矩阵作为参数。将获得的矩阵的行和列存储在不同的变量中。
步骤 3 − 现在,逐一迭代矩阵的每一行和每一列,并将相应的行和列打印为边界元素。
步骤 4 − 在这里,请注意,为了避免多次打印角元素,从 rows – 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 循环迭代接收到的作为参数的矩阵的每一行和每一列,并分别打印每一行和每一列作为边界元素。