В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Даша333555
Даша333555
27.10.2021 15:31 •  Информатика

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

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

#include <iostream>
#include <stdlib.h>

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<l;i++)
    {
        c=0;
        for(j=i+1;j<l;j++)
        if(a[s][i]==a[s][j])
        c++;
        if(ret<c) ret=c;
    }
    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<n;i++)
        for(j=0;j<l;j++)
            cin >> a[i][j];
    int *c = new int[n];
    for(i=0;i<n;i++)
    c[i]=test((int*)a,i);
    qsort(c,n,sizeof(int),compare);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        if(test(&a[0][0],i)==c[i])
        for(t=0;t<l;t++)
        b[i][t]=a[i][t];
    }
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота