综合练习:编写一个方法使得给定的一个二维数组(3 X 3) ,并赋值,再转置。
即:
1 2 3 1 4 7
4 5 6 ==> 2 5 8
7 8 9 3 6 9
package main
import (
"fmt"
)
type block struct {
rect [3][3]int
}
//与结构体绑定的转置方法
func (rectangle *block) transpose() {
for i := 0; i < len(rectangle.rect); i ++ {
for j := 0; j < len(rectangle.rect[i]); j ++ {
if i == j {
break
} else {
tmp := rectangle.rect[i][j] //临时变量
rectangle.rect[i][j] = rectangle.rect[j][i]
rectangle.rect[j][i]= tmp
}
}
}
//重新遍历结构体中的数组,以转置后的矩形输出
for _,v1 := range (rectangle.rect) {
println()
for _,v2 := range (v1) {
fmt.Print(v2," ")
}
}
println()
}
func main() {
var myRect block
//对结构体内的数组赋值,并以矩形输出
for i := 0; i < len(myRect.rect); i ++{
for j := 0; j < len(myRect.rect[i]); j++ {
myRect.rect[i][j] = 3 * i + (j + 1)
fmt.Print(myRect.rect[i][j]," ")
}
println()
}
//调用转置的方法
(&myRect).transpose()
}
输出结果: