Упорядочить строки матрицы по возрастанию количества одинаковых элементов в строке - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д