首页 >后端开发 >C++ >给定矩阵的C程序以交换对角线元素

给定矩阵的C程序以交换对角线元素

王林
王林转载
2023-08-25 18:02:031535浏览

给定矩阵的C程序以交换对角线元素

问题

我们需要编写代码来交换主对角线元素与次对角线元素。矩阵的大小在运行时给出。

如果矩阵 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 程序 -

 实时演示

#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中文网其他相关文章!

声明:
本文转载于:tutorialspoint.com。如有侵权,请联系admin@php.cn删除