面对不同的二维数组,只需要修改参数中的数组长度就能达到横向和纵向的交换,以下是用goLang语言写的
func arrExchange(arr [4][4]int)[4][4]int{
//获取一个新的一维数组长度
var arr1 [(len(arr))*(len(arr[0]))]int
var i int = 0
//将二维数组分解放入一个一维数组中
for j := 0; j < len(arr); j++ {
for k := 0; k < len(arr[j]); k++ {
arr1[i] = arr[j][k]
i++
}
}
fmt.Println("合成一个: ",arr1)
//对一维数组重新组合
for j := 0; j < len(arr); j++ {
for i := 0; i < len(arr[j]); i++ {
//i*(len(arr)-1)+i+j这样写是保证每次都能将一个特定的数放到二维数组中
arr[j][i] = arr1[i*(len(arr)-1)+i+j]//
}
}
return arr
}