Форум программистов, компьютерный форум CyberForum.ru

Сортировка столбцов в двумерном массиве - C++

Восстановить пароль Регистрация
 
Obsidian2010
0 / 0 / 0
Регистрация: 25.09.2012
Сообщений: 21
25.12.2012, 19:47     Сортировка столбцов в двумерном массиве #1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
    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();
 
}
А как сделать так, чтобы сортировка шла в порядке возрастания максимальных элементов всех столбцов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 19:47     Сортировка столбцов в двумерном массиве
Посмотрите здесь:

Определить количество столбцов с неповторяющимися элементами в двумерном массиве C++
найти минимальные элементы столбцов в двумерном массиве C++
задачи в Двумерном массиве. Определить, есть ли в массиве два одинаковых элемента, поменять местами элементы C++
C++ В двумерном массиве найти среднее арифметическое первого столбца и количество элементов в каждом из следующих столбцов
C++ Найти в двумерном динамическом массиве сумму строк и сумму столбцов и сравнить их
C++ Различное количество строк и столбцов в двумерном массиве
C++ Замена столбцов в двумерном массиве
C++ Поиск элементов строк и столбцов в двумерном массиве

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asidorchenko
379 / 205 / 25
Регистрация: 09.04.2012
Сообщений: 635
28.12.2012, 17:06     Сортировка столбцов в двумерном массиве #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
 {
    int a[ 100 ][ 100 ];
    int  row, col;
    int i, j;
 
    srand(time(0));
    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");
    }
 
// вывод нетранспонированной матрицы
for(i = 0; i < row; i++)
{
 for(j = 0; j < col; j++)
 {
  printf("%d ", a[j][i]);
 }
 printf("\n");
}
// задача: отсортировать матрицу в порядке
// возрастания максимальных элементов столбцов
   // первый индекс - столбец < col
   // второй индекс - строка  < row
    int k=0;
    int temp=0;
 
    // по столбцам
    for(j = 0; j < col; j++)
    {
     // по строкам
     for(i = 0; i < row; i++)
     {
      for(k = i + 1; k < row; k++)
      {
        if (a[j][i] > a[j][k])
        {
          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");
    }
 
// вывод нетранспонированной матрицы
for(i = 0; i < row; i++)
{
 for(j = 0; j < col; j++)
 {
  printf("%d ", a[j][i]);
 }
 printf("\n");
}
 
 
 }
 return 0;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
28.12.2012, 17:13     Сортировка столбцов в двумерном массиве #3
Цитата Сообщение от asidorchenko Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
for(j = 0; j < col; j++) { // по строкам 
  for(i = 0; i < row; i++) { 
    for(k = i + 1; k < row; k++) {
      if (a[j][i] > a[j][k]) {
        temp = a[j][i]; 
        a[j][i] = a[j][k]; 
        a[j][k] = temp; 
      } 
    }
  } 
}
Это неверно!
Yandex
Объявления
28.12.2012, 17:13     Сортировка столбцов в двумерном массиве
Ответ Создать тему
Опции темы

Текущее время: 07:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru