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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2012, 10:53   #1
Obsidian2010
Новичок
Джуниор
 
Регистрация: 18.11.2012
Сообщений: 2
По умолчанию Сортировка столбцов в двумерном массиве

Программа, сортирующая столбцы по возрастанию элементов первой строки

Код:
{
    int a[ 100 ][ 100 ];        
    int  row, col;              
    int i, j;
 
 
    printf( "Enter sizes of matrix: \n" );      
    scanf( "%d  %d", &row, &col );
 
 
 
    for( i = 0; i < col; i++ )          
    {
        for( j = 0; j < row; j++ )
        {
 
            a[ i ][ j ] = ( int )rand()%10; 
 
            printf( "%2d", a[ i ][ j ] );
        }
        printf("\n");
    }
 
 
    int k=0;
    int temp=0;
 
    for (i=0; i < row; i++) {
                                      
        for (k=i+1; k < row; k++) {
            
            if (a[0][i] > a[0][k]){
        for (j=0; j < col; j++) { 
                    temp = a[j][i];
                    a[j][i]=a[j][k];
                    a[j][k]=temp;
                }
            }
        }
    }
 
    printf ("\n");
 
        for( i = 0; i < col; i++ )          
        {
            for( j = 0; j < row; j++ )
            {
            printf( "%2d", a[ i ][ j ] );
            }
        printf("\n");
        }
 _getch();
 
}
А как сделать так, чтобы сортировка шла в порядке возрастания максимальных элементов всех столбцов?
Obsidian2010 вне форума Ответить с цитированием
Старый 25.12.2012, 11:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Завести в каждой строке дополнительную ячейку, в которую будет узаносится максимум:
Код:
    int a[ 100 ][ 101 ];        
    int  row, col;              
    int i, j;
 
 
    printf( "Enter sizes of matrix: \n" );      
    scanf( "%d  %d", &row, &col );
 
 
 
    for( i = 0; i < col; i++ )          
    {
        for( j = 0; j < row; j++ )
        {
 
            a[ i ][ j ] = ( int )rand()%10; 
            a[ i ][ 100 ]=(a[ i ][ j ]>a[ i ][ 100 ])?a[ i ][ j ]:a[ i ][ 100 ]
            printf( "%2d", a[ i ][ j ] );
        }
        printf("\n");
    }
А потом сортировать по a[ i ][ 100 ]
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рассчет в двумерном массиве (С++) Faraon9 Помощь студентам 2 08.12.2012 19:21
Сортировка в двумерном массиве scoprion Помощь студентам 1 12.01.2011 20:30
Повторы в двумерном массиве rusasha Паскаль, Turbo Pascal, PascalABC.NET 1 05.05.2010 08:26
Random в двумерном массиве. Lazio Помощь студентам 7 01.11.2009 22:53
Сортировка отр. элементов в двумерном массиве SWAT Паскаль, Turbo Pascal, PascalABC.NET 3 02.04.2009 21:43