C++Расположить строки заданной матрицы по возрастанию количества одинаковых элементов в...

0 голосов
44 просмотров
C++
Расположить строки заданной матрицы по возрастанию количества одинаковых элементов в каждой строке.


Информатика (30 баллов) | 44 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Жаль я не силён с указателями, посмотри на код, идую возможно поймёшь, а так компилятор ошибку в функции test выводит, типо не может с массивом там работать, возможно ты сможешь исправить

#include
#include

using namespace std;

int n,l;

int test(int *a, int s)
{
    int ret=0;
    int c=0;
    int i,j;
    for(i=0;i    {
        c=0;
        for(j=i+1;j        if(a[s][i]==a[s][j])
        c++;
        if(ret    }
    return ret;
}

int compare(const void* a, const void* b)
{
    return *(int *)a-*(int *)b;
}

int main()
{
    int i,j,t;
    int a[10][10],b[10][10];
    cin >> n >> l;
    for(i=0;i        for(j=0;j            cin >> a[i][j];
    int *c = new int[n];
    for(i=0;i    c[i]=test((int*)a,i);
    qsort(c,n,sizeof(int),compare);
    for(i=0;i    {
        for(j=0;j        if(test(&a[0][0],i)==c[i])
        for(t=0;t        b[i][t]=a[i][t];
    }
}

(332 баллов)