主な対角要素と副対角要素を交換するコードを記述する必要があります。マトリックスのサイズは実行時に与えられます。
行列の m 値と n 値のサイズが等しくない場合は、指定された行列が正方ではないことを出力します。
主対角要素または副対角要素を交換できるのは正方行列のみです。
特定の行列の対角要素を交換する C プログラムを作成する解決策は次のとおりです-
対角要素を交換するロジック については以下で説明します -
for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; }
以下は、指定された行列の対角要素 を交換するための C プログラムです -
Real-時間デモ#include<stdio.h> main (){ int i,j,m,n,a; static int ma[10][10]; printf ("Enter the order of the matrix m and n</p><p>"); scanf ("%dx%d",&m,&n); if (m==n){ printf ("Enter the co-efficients of the matrix</p><p>"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ scanf ("%d",&ma[i][j]); } } printf ("The given matrix is </p><p>"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("</p><p>"); } for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; } printf ("Matrix after changing the </p><p>"); printf ("Main & secondary diagonal</p><p>"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("</p><p>"); } } else printf ("The given order is not square matrix</p><p>"); }出力上記のプログラムを実行すると、次の結果が生成されます-
Run 1: Enter the order of the matrix m and n 3x3 Enter the co-efficient of the matrix 1 2 3 4 5 6 7 8 9 The given matrix is 1 2 3 4 5 6 7 8 9 Matrix after changing the Main & secondary diagonal 3 2 1 4 5 6 9 8 7 Run 2: Enter the order of the matrix m and n 4x3 The given order is not square matrix
以上が指定された行列の対角要素を交換する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。