Упорядочить строки матрицы по возрастанию количества одинаковых элементов в строке - C (СИ)
Формулировка задачи:
Дана целочисленная матрица A[i j]. Получить целочисленную матрицу B[i j] путём упорядовачиния строк исходной матрицы по возрастанию количества одинаковых элементов в каждой сторке.
Решение задачи: «Упорядочить строки матрицы по возрастанию количества одинаковых элементов в строке»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- unsigned short i;
- unsigned short j;
- unsigned int Maximum_Quantity_Of_repetitions(unsigned int** A, unsigned short k, unsigned int n)
- {
- unsigned short f,Count = 1,Count1;
- j=0;
- for(; j< n; j++)
- {
- Count1=0;
- f = j+1;
- for(; f<n; f++)
- {
- if(j==0)
- {
- if(A[k][j]==A[k][f])
- Count++;
- }
- else
- if(A[k][j]==A[k][f])
- Count1++;
- }
- if(Count1>Count)
- Count = Count1;
- }
- return Count;
- }
- void Print_Arr(unsigned int** A, unsigned int m, unsigned int n)
- {
- i=0;
- for(; i<m; i++)
- {
- for(j=0; j<n; j++)
- {
- if(A[i][j]<10)
- printf("%d %s",A[i][j]," ");
- else if(A[i][j]<100)
- printf("%d %s",A[i][j]," ");
- else if(A[i][j]>99)
- printf("%d %s",A[i][j]," ");
- }
- printf(" \n");
- }
- }
- void Matrix_Processing(unsigned int** B, unsigned int m, unsigned int n)
- {
- unsigned short k,h,Swap;
- for( i=0; i<m; i++)
- {
- for(k=0; k<m; k++)
- {
- if(Maximum_Quantity_Of_repetitions(B,i,n) < Maximum_Quantity_Of_repetitions(B,k,n))
- {
- for(h=0;h<n;h++)
- {
- Swap = B[k][h];
- B[k][h] = B[i][h];
- B[i][h] = Swap;
- }
- }
- }
- }
- }
- int main()
- {
- unsigned int m,n;
- printf("%s","Enter number of lines: ");
- scanf("%u",&m);
- unsigned int** A = (unsigned int**) malloc(m * sizeof(unsigned int*));
- unsigned int** B = (unsigned int**) malloc(m * sizeof(unsigned int*));
- printf("%s","Enter number of columns: ");
- scanf("%u",&n);
- printf("%s","Enter matrix elements: \n");
- for( i=0; i<m; i++)
- {
- A[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
- B[i] = (unsigned int*) malloc(n * sizeof(unsigned int));
- for(j=0; j<n; j++)
- {
- printf("%s %u %s %u %s","A[",i,"][",j,"] = ");
- scanf("%d",&(A[i][j]));
- B[i][j] = A[i][j];
- }
- }
- printf("%s","\nThe Entered matrix looks like: \n");
- Print_Arr(A, m, n);
- Matrix_Processing(B, m, n);
- printf("%s","\nThe recieved matrix B looks like: \n");
- Print_Arr(B, m, n);
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д