Упорядочить строки матрицы по возрастанию количества одинаковых элементов в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана целочисленная матрица A[i j]. Получить целочисленную матрицу B[i j] путём упорядовачиния строк исходной матрицы по возрастанию количества одинаковых элементов в каждой сторке.

Решение задачи: «Упорядочить строки матрицы по возрастанию количества одинаковых элементов в строке»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. unsigned short i;
  5. unsigned short j;
  6.  
  7. unsigned int Maximum_Quantity_Of_repetitions(unsigned int** A, unsigned short k, unsigned int n)
  8. {
  9.     unsigned short f,Count = 1,Count1;
  10.     j=0;
  11.     for(; j< n; j++)
  12.     {
  13.         Count1=0;
  14.         f = j+1;
  15.         for(; f<n; f++)
  16.         {
  17.             if(j==0)
  18.             {
  19.                 if(A[k][j]==A[k][f])
  20.                     Count++;
  21.             }
  22.             else
  23.                 if(A[k][j]==A[k][f])
  24.                     Count1++;
  25.  
  26.         }
  27.         if(Count1>Count)
  28.             Count = Count1;
  29.     }
  30.     return Count;
  31. }
  32.  
  33. void Print_Arr(unsigned int** A, unsigned int m, unsigned int n)
  34. {
  35.     i=0;
  36.     for(; i<m; i++)
  37.     {
  38.         for(j=0; j<n; j++)
  39.         {
  40.             if(A[i][j]<10)
  41.                 printf("%d %s",A[i][j],"   ");
  42.             else   if(A[i][j]<100)
  43.                 printf("%d %s",A[i][j],"  ");
  44.             else   if(A[i][j]>99)
  45.                 printf("%d %s",A[i][j]," ");
  46.         }
  47.         printf(" \n");
  48.     }
  49. }
  50.  
  51. void Matrix_Processing(unsigned int** B, unsigned int m, unsigned int n)
  52. {
  53.  
  54.     unsigned short k,h,Swap;
  55.     for(  i=0; i<m; i++)
  56.     {
  57.  
  58.         for(k=0; k<m; k++)
  59.         {
  60.             if(Maximum_Quantity_Of_repetitions(B,i,n) < Maximum_Quantity_Of_repetitions(B,k,n))
  61.             {
  62.                 for(h=0;h<n;h++)
  63.                 {
  64.                     Swap = B[k][h];
  65.                     B[k][h] = B[i][h];
  66.                     B[i][h] = Swap;
  67.                 }
  68.             }
  69.         }
  70.     }
  71. }
  72.  
  73. int main()
  74. {
  75.     unsigned int m,n;
  76.  
  77.  
  78.     printf("%s","Enter number of lines: ");
  79.     scanf("%u",&m);
  80.  
  81.     unsigned int** A = (unsigned int**) malloc(m * sizeof(unsigned int*));
  82.     unsigned int** B = (unsigned int**) malloc(m * sizeof(unsigned int*));
  83.  
  84.     printf("%s","Enter number of columns: ");
  85.     scanf("%u",&n);
  86.  
  87.     printf("%s","Enter matrix elements: \n");
  88.  
  89.     for(  i=0; i<m; i++)
  90.     {
  91.         A[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
  92.         B[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
  93.         for(j=0; j<n; j++)
  94.         {
  95.             printf("%s %u %s %u %s","A[",i,"][",j,"] = ");
  96.             scanf("%d",&(A[i][j]));
  97.             B[i][j] =  A[i][j];
  98.         }
  99.     }
  100.  
  101.     printf("%s","\nThe Entered matrix looks like: \n");
  102.     Print_Arr(A, m, n);
  103.  
  104.     Matrix_Processing(B, m, n);
  105.  
  106.     printf("%s","\nThe recieved matrix B looks like: \n");
  107.     Print_Arr(B, m, n);
  108.  
  109.     return 0;
  110. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы