给定一个方阵,交换主对角线和次对角线的元素。
null
矩阵的主要对角线元素: 主要对角线元素是从矩阵左上角到右下角出现的元素。主对角线也称为主对角线或主对角线。 矩阵的次对角元素: 次要对角线元素是从矩阵右上角到左下角出现的元素。也称为次对角线。
例子:
Input : 0 1 2 3 4 5 6 7 8Output : 2 1 0 3 4 5 8 7 6
方法: 我们应该知道的一件简单的事情是,主对角线或主对角线的索引是相同的,即假设A是矩阵,那么A[1][1]将是主对角线元素,并且次对角线的索引之和等于矩阵的大小。假设A是一个大小为3的矩阵,那么A[1][2]将是次对角元素。 以下是上述方法的实施情况:
C++
// CPP Program to swap diagonal of a matrix #include <bits/stdc++.h> using namespace std; // size of square matrix #define N 3 // Function to swap diagonal of matrix void swapDiagonal( int matrix[][N]) { for ( int i = 0; i < N; i++) swap(matrix[i][i], matrix[i][N - i - 1]); } // Driver Code int main() { int matrix[N][N] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}}; swapDiagonal(matrix); // Displaying modified matrix for ( int i = 0; i < N; i++) { for ( int j = 0; j < N; j++) cout << matrix[i][j] << " " ; cout << endl; } return 0; } |
JAVA
// Java implementation to swap // diagonal of a matrix import java.io.*; class Gfg { static int N = 3 ; // Function to swap diagonal of matrix static void swapDiagonal( int matrix[][]) { for ( int i = 0 ; i < N; i++) { int temp = matrix[i][i]; matrix[i][i] = matrix[i][N - i - 1 ]; matrix[i][N - i - 1 ] = temp; } } // Driver function public static void main(String arg[]) { int matrix[][] = {{ 0 , 1 , 2 }, { 3 , 4 , 5 }, { 6 , 7 , 8 }}; swapDiagonal(matrix); // Displaying modified matrix for ( int i = 0 ; i < N; i++) { for ( int j = 0 ; j < N; j++) System.out.print(matrix[i][j] + " " ); System.out.println(); } } } // This code is contributed by Anant Agarwal. |
Python3
# Python3 Program to swap diagonal of a matrix # size of square matrix N = 3 # Function to swap diagonal of matrix def swapDiagonal(matrix): for i in range (N): matrix[i][i], matrix[i][N - i - 1 ] = matrix[i][N - i - 1 ], matrix[i][i] # Driver Code matrix = [[ 0 , 1 , 2 ], [ 3 , 4 , 5 ], [ 6 , 7 , 8 ]] # swap diagonals of matrix swapDiagonal(matrix); # Displaying modified matrix for i in range (N): for j in range (N): print (matrix[i][j], end = ' ' ) print () |
C#
// C# implementation to swap // diagonal of a matrix using System; class Gfg { static int N = 3; // Function to swap diagonal of matrix static void swapDiagonal( int [,]matrix) { for ( int i = 0; i < N; i++) { int temp = matrix[i,i]; matrix[i,i] = matrix[i,N - i - 1]; matrix[i,N - i - 1] = temp; } } // Driver function public static void Main() { int [,]matrix = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}}; swapDiagonal(matrix); // Displaying modified matrix for ( int i = 0; i < N; i++) { for ( int j = 0; j < N; j++) Console.Write(matrix[i,j] + " " ); Console.WriteLine(); } } } // This code is contributed by vt_m. |
PHP
<?php // PHP Program to swap // diagonal of a matrix // size of square matrix $N = 3; // Function to swap // diagonal of matrix function swapDiagonal( $matrix ) { global $N ; for ( $i = 0; $i < $N ; $i ++) { $tmp = $matrix [ $i ][ $i ]; $matrix [ $i ][ $i ] = $matrix [ $i ][ $N - $i - 1]; $matrix [ $i ][ $N - $i - 1] = $tmp ; } // Displaying modified matrix for ( $i = 0; $i < $N ; $i ++) { for ( $j = 0; $j < $N ; $j ++) echo $matrix [ $i ][ $j ] . " " ; echo "" ; } } // Driver Code $matrix = array ( array (0, 1, 2), array (3, 4, 5), array (6, 7, 8)); swapDiagonal( $matrix ); // This code is contributed by mits ?> |
Javascript
<script> // JavaScript program to swap // diagonal of a matrix. // size of square matrix let N = 3; // Function to swap diagonal of matrix function swapDiagonal(matrix) { for (let i = 0; i < N; i++) { let temp = matrix[i][i]; matrix[i][i] = matrix[i][N - i - 1]; matrix[i][N - i - 1] = temp; } } // Driver code let matrix = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]; swapDiagonal(matrix); // Displaying modified matrix for (let i = 0; i < N; i++) { for (let j = 0; j < N; j++) document.write(matrix[i][j] + " " ); document.write( "<br/>" ); } </script> |
输出:
2 1 03 4 58 7 6
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END