Golang 打印矩阵的边界元素

Golang 打印矩阵的边界元素

什么是边界元素

在go编程语言中,矩阵的边界元素是位于矩阵外边缘的元素。它们位于四个位置,即第一行、最后一行、第一列和最后一列。在大小为m x n的矩阵中,顶部边界元素是位于matrix[0][0]到matrix[0][n-1]范围内的元素,底部边界元素是位于matrix[m-1][0]matrix[m-1][n-1]范围内的元素,左边界元素是位于matrix[0][0]matrix[m-1][0]范围内的元素,右边界元素是位于matrix[0][n-1]matrix[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循环来迭代矩阵的每一行和每一列,并分别打印出每一行和每一列的边界元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程