Отсортировать строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке

Не могу найти ошибку. Не заполняет дополнительный массив с кол-вом одинаковых элементов.

#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
#include <malloc.h>

int main()
{
    int i, j, n, m, l, min, min_l, kol, temp;
    int* new_mas_kol;
    setlocale(LC_ALL, "Rus");
    
    printf("Введите количество строк в матрице\n");
    scanf_s("%d", &n);
    printf("Введите количество столбцов в матрице\n");
    scanf_s("%d", &m);
    printf("\n");

    int **b;
    b = (int**)calloc(n, sizeof(int*));

    for (i = 0; i < n; i++) {

        *(b + i) = (int*)calloc(m, sizeof(int*));
    }

    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++)
        {
            scanf_s("%d", &b[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }
    new_mas_kol = (int*)malloc(n * sizeof(int));
    
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            new_mas_kol[i] = 0;
            for (int k = j + 1; k < m; k++) {
                if (b[i][j] == b[i][k]) {
                    new_mas_kol[i]++;
                }
            }
        }
    }
    printf("\n");
    for (j = 0; j < m; j++) {
        printf("%d ", new_mas_kol[j]);
    }
    printf("\n");
    printf("\n");
    
    for (i = 0; i < n; i++) {
        int maxCount = new_mas_kol[i];
        int index = i;
        for (j = i + 1; j < n; j++)
            if (new_mas_kol[j] > maxCount) {
                maxCount = new_mas_kol[j];
                index = j;
            }

        int temp = new_mas_kol[i];
        new_mas_kol[i] = maxCount;
        new_mas_kol[index] = temp;

        for (int k = 0; k < n; k++) {
            temp = b[i][k];
            b[i][k] = b[index][k];
            b[index][k] = temp;
        }
    }

    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
        }
    return 0;
}

Ответы (0 шт):