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