Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

行列のすべての列と行をソートする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 \n");
   scanf ("%d %d", &m,&n);
   printf ("Enter co-efficients of the matrix \n");
   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 \n");
   for (i=0;i<m;++i){
      for (j=0;j<n;++j){
         printf (" %d",ma[i][j]);
      }
      printf ("\n");
   }
   printf ("After arranging rows in ascending order\n");
   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 ("\n");
   }
   printf ("After arranging the columns in descending order \n");
   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 ("\n");
   }
}

出力

上記のプログラムを実行すると、次の結果が得られます-

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

  1. Excelでセル、列、行を結合する方法

    Microsoft Excelで本文をフォーマットする方法によっては、セルを結合する必要がある場合があります。理由が何であれ、使用できるテクニックはいくつかあります。これらは、セル、行、および列のマージを実現するのに役立ちます。一部のメソッドはセル内の一部のデータを削除するため、最終結果をどのように表示するかを事前に決定する必要があります。 セルのマージ 組み込みのマージオプションは、MicrosoftExcelの[ホーム]タブにあります。 使用可能なマージオプションは次のとおりです。 マージとセンター :このオプションは、セルを1つに結合し、テキストを中央に配置します。ただし、左端の

  2. Excel で行と列を固定する方法

    Microsoft Excel は、広範なデータの整理と分析に役立ちます 表計算ソフトで。小規模産業から大規模産業まで重要な役割を果たします。ユーザーは、この強力なデータ編成ツールを使用して財務分析を実行できます。ビジネス分析、人員管理、プログラム管理、戦略分析、管理目的、運用管理、業績報告などのアプリケーションのヒープを提供します。ただし、主にデータの保存と並べ替えに使用されます 簡単な分析のために。 Microsoft Excel 2016 および 2019 は、Excel の行または列を固定できる機能をサポートしています。したがって、上下にスクロールしても、固定されたペインは同じ場所に残