Maison  >  Article  >  développement back-end  >  Programme C pour trier toutes les colonnes et lignes d'une matrice

Programme C pour trier toutes les colonnes et lignes d'une matrice

王林
王林avant
2023-09-14 09:17:021218parcourir

Programme C pour trier toutes les colonnes et lignes dune matrice

Question

Écrivez du code pour trier toutes les lignes d'une matrice par ordre croissant et toutes les colonnes par ordre décroissant. La taille et les éléments de la matrice sont fournis par l'utilisateur au moment de l'exécution.

Solution

La solution pour trier toutes les lignes d'une matrice par ordre croissant et toutes les colonnes par ordre décroissant en langage de programmation C est expliquée ci-dessous :

La logique utilisée pour trier les lignes par ordre croissant est la suivante :

for (i=0;i<m;++i){
   for (j=0;j<n;++j){
      for (k=(j+1);k<n;++k){
         if (ma[i][j] > ma[i][k]){
            a = ma[i][j];
            ma[i][j] = ma[i][k];
            ma[i][k] = a;
         }
      }
   }
}

Pour tri par La logique de tri des colonnes par ordre décroissant est la suivante −

for (j=0;j<n;++j){
   for (i=0;i<m;++i){
      for (k=i+1;k<m;++k){
         if (mb[i][j] < mb[k][j]){
            a = mb[i][j];
            mb[i][j] = mb[k][j];
            mb[k][j] = a;
         }
      }
   }
}

Programme

Ce qui suit est un programme Cpour trier toutes les lignes d'une matrice par ordre croissant et toutes les colonnes par ordre décroissant

En temps réel démonstration

#include <stdio.h>
void main(){
   int i,j,k,a,m,n;
   static int ma[10][10],mb[10][10];
   printf ("Enter the order of the matrix </p><p>");
   scanf ("%d %d", &m,&n);
   printf ("Enter co-efficients of the matrix </p><p>");
   for (i=0;i<m;++i){
      for (j=0;j<n;++j){
         scanf ("%d",&ma[i][j]);
         mb[i][j] = 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>");
   }
   printf ("After arranging rows in ascending order</p><p>");
   for (i=0;i<m;++i){
      for (j=0;j<n;++j){
         for (k=(j+1);k<n;++k){
            if (ma[i][j] > ma[i][k]){
               a = ma[i][j];
               ma[i][j] = ma[i][k];
               ma[i][k] = a;
            }
         }
      }
   }
   for (i=0;i<m;++i){
      for (j=0;j<n;++j){
         printf (" %d",ma[i][j]);
      }
      printf ("</p><p>");
   }
   printf ("After arranging the columns in descending order </p><p>");
   for (j=0;j<n;++j){
      for (i=0;i<m;++i){
         for (k=i+1;k<m;++k){
            if (mb[i][j] < mb[k][j]){
               a = mb[i][j];
               mb[i][j] = mb[k][j];
               mb[k][j] = a;
            }
         }
      }
   }
   for (i=0;i<m;++i){
      for (j=0;j<n;++j){
         printf (" %d",mb[i][j]);
      }
      printf ("</p><p>");
   }
}

sortie

Quand ce qui précède Lorsque le programme est exécuté, il produit le résultat suivant −

Enter the order of the matrix
3 4
Enter co-efficient of the matrix
1
2
3
4
1
2
3
4
5
1
2
3
The given matrix is
1 2 3 4
1 2 3 4
5 1 2 3

After arranging rows in ascending order
1 2 3 4
1 2 3 4
1 2 3 5

After arranging the columns in descending order
5 2 3 4
1 2 3 4
1 1 2 3

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