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

Дан двумерный массив, содержащий 12 строк и 14 столбцов - C++

Восстановить пароль Регистрация
 
Dakster
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 74
02.12.2013, 05:07     Дан двумерный массив, содержащий 12 строк и 14 столбцов #1
Дан двумерный массив, содержащий 12 строк и 14 столбцов. Элементами массива являются целые числа. Упорядочить массив по невозрастанию элементов последней строки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 05:07     Дан двумерный массив, содержащий 12 строк и 14 столбцов
Посмотрите здесь:

Дан двумерный массив А который состоит из m строк и n столбцов C++
C++ Дан двумерный массив целых чисел (4 строки, 5 столбцов). Заполните его с клавиатуры
C++ Двумерный массив среднее арифметическое элементов и сумм строк,столбцов
Дан массив содержащий m строк и n столбцов. Определить количество чисел массива, значения которых нечетное C++
Дан двумерный массив A размера m×n. Найти количество столбцов, где все элементы упорядочены по возрастанию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
02.12.2013, 05:26     Дан двумерный массив, содержащий 12 строк и 14 столбцов #2
Код для динамического массива. Сам алгоритм сортировки весь в процедуре sort, разберётесь думаю.

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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
void sort(int** A, int n, int m)
{
   int t, i = 0, j;
   for(;i < m;++i)
     for(j=i+1;j < m; ++j)
        if(A[n-1][i] < A[n-1][j])
        {
            for(int k = 0; k < n; ++k)
            {
               t = A[k][i];
               A[k][i] = A[k][j];
               A[k][j] = t;
            }
        }
}
 
int main()
{
    srand(7);
    int **a = NULL;
 
    int height = 12, width = 14;
    a = new int * [height];
                
    for ( int i = 0; i < height; i ++ )
    {
        a[i] = new int [width];
    }
    
   for ( int i = 0; i < height; i ++ )
        for( int j = 0; j < width; j ++ )
            a[i][j] = rand() % 10;     
   
   for ( int i = 0; i < height; i ++ )                    
   {
        for( int j = 0; j < width; j ++ )                                                    
            printf("%4d", a[i][j]);                        
        printf("\n");
    }
        
    
    sort(a, height, width);
    
    printf("\n");
    for ( int i = 0; i < height; i ++ )                    
    {
        for( int j = 0; j < width; j ++ )                                                    
            printf("%4d", a[i][j]);                        
        printf("\n");
    }
    
    for ( int i = 0; i < height; i ++ )    
        delete a[i];    
    delete[] a;
   
   return 0;
}
Dakster
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 74
02.12.2013, 23:51  [ТС]     Дан двумерный массив, содержащий 12 строк и 14 столбцов #3
мне бы полегче, чтобы понять..а то я не понял тут ничего. или можешь там уточнить и написать что где начинается?
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
03.12.2013, 12:57     Дан двумерный массив, содержащий 12 строк и 14 столбцов #4
Вот этот код это сама сортировка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void sort(int** A, int n, int m)
{
   int t, i = 0, j;
   for(;i < m;++i)
     for(j=i+1;j < m; ++j)
        if(A[n-1][i] < A[n-1][j])
        {
            for(int k = 0; k < n; ++k)
            {
               t = A[k][i];
               A[k][i] = A[k][j];
               A[k][j] = t;
            }
        }
}
Вот код без динамического выделения памяти
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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    srand(7);     
    const int height = 12, width = 14;
    int A[height][width];
    
    //////////////заполнение массива случайными числами и вывод на экран
   int t, i, j; 
   for ( i = 0; i < height; i ++ )
   {
        for( int j = 0; j < width; j ++ )        
        {
            A[i][j] = rand() % 10;     
            cout << A[i][j] << " ";
        }
        cout << endl;
   }
   /////////////////////////////////
   
   cout << endl;
   
   //////////////собственно сама сортировка
   for(i=0;i < width;++i)
     for(j=i+1;j < width; ++j)
        if(A[height-1][i] < A[height-1][j])
        {
            for(int k = 0; k < height; ++k)
            {
               t = A[k][i];
               A[k][i] = A[k][j];
               A[k][j] = t;
            }
        }
    /////////////////////////////////    
   
   //////////////вывод на экран массива
   for ( i = 0; i < height; i ++ )
   {
        for( int j = 0; j < width; j ++ )        
            cout << A[i][j] << " ";     
        cout << endl;
   }
   /////////////////////////////////
   
   return 0;
}
Yandex
Объявления
03.12.2013, 12:57     Дан двумерный массив, содержащий 12 строк и 14 столбцов
Ответ Создать тему
Опции темы

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