Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2014, 20:48   #1
manichka2009
 
Регистрация: 29.12.2013
Сообщений: 4
По умолчанию Упорядочить столбцы матрицы по неубыванию характеристик.

Дана целочисленная матрица A(M,N). Характеристикой j –го столбца матрицы назовем значение элемента, который встречается максимальное число раз в j–ом столбце. Если таких элементов в строке несколько, то взять наименьший из них. Упорядочить столбцы матрицы по неубыванию характеристик. В программе предусмотреть динамическое выделение памяти.

У меня есть написанный код к этой задаче, только в ней не выделена динамическая память.

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand( time( NULL ) );
    int a[100][100], b[100][2], N, M, i, j, t, k;
    printf("M= ");
    scanf("%d", &M);
    printf("N= ");
    scanf("%d", &N);
    printf("Ishodn matr:\n");
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
        {
            a[i][j]=rand()%7;
            printf("%2d", a[i][j]);
        }
        printf("\n");
    }
    for(j=0; j<N; j++)
    {
        b[j][0]=a[0][j];
        b[j][1]=1;
        for(i=0; i<M; i++)
        {
            t=0;
            for(k=0; k<M; k++)
                if(a[i][j]==a[k][j])
                    t++;
            if(t>b[j][1] || (t==b[j][1] && b[j][0]>a[i][j]))
            {
                b[j][1]=t; b[j][0]=a[i][j];
            }
        }
    }
    for(j=0; j<N-1; j++)
    {
        t=j;
        for(i=j; i<N; i++)
            if(b[i][0]<b[t][0])
                t=i;
        for(i=0; i<M; i++)
        {
            k=a[i][j];
            a[i][j]=a[i][t];
            a[i][t]=k;
        }
        k=b[j][0]; b[j][0]=b[t][0]; b[t][0]=k;
    }
    printf("Preobr matr:\n");
    for(i=0; i<M; i++)
    {
        for(j=0; j<N; j++)
            printf("%2d", a[i][j]);
        printf("\n");
    }
    return 0;
}
manichka2009 вне форума Ответить с цитированием
Старый 30.03.2014, 22:57   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Вопрос

Цитата:
Упорядочить столбцы матрицы по неубыванию характеристик
Что значит по "неубыванию"?
Streletz вне форума Ответить с цитированием
Старый 31.03.2014, 01:20   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Что значит по "неубыванию"?
это означает, что каждый i+1 столбец имеет характеристику большую или равную характеристике i-го столбца...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить массив a1,a2,…,an по неубыванию mash0 Паскаль, Turbo Pascal, PascalABC.NET 1 14.05.2012 05:01
Упорядочить по убыванию столбцы матрицы, все элементы которых присутствуют в массиве. Gluck231 Помощь студентам 0 19.01.2012 09:59
Delphi. упорядочить столбцы матрицы по возрастанию сумм элементов этого столбца ДваДваВо7 Помощь студентам 2 09.02.2011 16:40
Упорядочить столбцы матрицы alexantonov Фриланс 7 15.10.2009 18:39