Maison >développement back-end >C++ >Programme C pour échanger les éléments diagonaux d'une matrice donnée

Programme C pour échanger les éléments diagonaux d'une matrice donnée

王林
王林avant
2023-08-25 18:02:031531parcourir

Programme C pour échanger les éléments diagonaux dune matrice donnée

Problème

Nous devons écrire du code pour échanger les éléments diagonaux principaux avec les éléments sous-diagonaux. La taille de la matrice est donnée à l'exécution.

Si les tailles des valeurs m et n de la matrice ne sont pas égales, imprimez que la matrice donnée n'est pas carrée.

Seuls les éléments diagonaux principaux de la matrice carrée peuvent être interchangés, et ils peuvent également être interchangés avec les éléments sous-diagonaux.

Solution

La solution pour écrire un programme C pour échanger les éléments diagonaux dans une matrice donnée est la suivante-

La logique d'échange des éléments diagonauxest expliquée ci-dessous-

for (i=0;i<m;++i){
   a = ma[i][i];
   ma[i][i] = ma[i][m-i-1];
   ma[i][m-i-1] = a;
}

Exemple

Ci-dessous est Programme C pour échanger des éléments diagonaux dans une matrice donnée -

Démonstration en direct

#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>");
}

sortie

Lorsque le programme ci-dessus est exécuté, il produit les résultats suivants -

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer