C語言程式用於對矩陣的所有行和列進行排序


問題

編寫程式碼以將矩陣的所有行按升序排序,並將所有列按降序排序。矩陣的大小和矩陣元素由使用者在執行時給出。

解決方案

以下是使用 C 程式語言對矩陣的所有行進行升序排序以及對所有列進行降序排序的解決方案:

用於按升序排序行的邏輯如下

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 (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;
         }
      }
   }
}

程式

以下是 C 程式,用於將矩陣的所有行按升序排序,並將所有列按降序排序

 即時演示

#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 
");    scanf ("%d %d", &m,&n);    printf ("Enter co-efficients of the matrix
");    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
");    for (i=0;i<m;++i){       for (j=0;j<n;++j){          printf (" %d",ma[i][j]);       }       printf ("
");    }    printf ("After arranging rows in ascending order
");    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 ("
");    }    printf ("After arranging the columns in descending order
");    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 ("
");    } }

輸出

執行上述程式時,將產生以下結果:

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

更新於: 2021年9月1日

4K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.