Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
AlienZz
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 48
1

Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность

04.03.2018, 19:15. Просмотров 1198. Ответов 4
Метки нет (Все метки)

Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию массива случайными целыми числами из промежутка [a;b). Значения n, m, a, b вводятся с клавиатуры. Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность. Выведите массив на экран в виде таблицы дважды – до и после перестановки. Оформите генерацию, вывод массива и перестановку столбцов с помощью функций. Нужен код!
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2018, 19:15
Ответы с готовыми решениями:

Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию...

Двумерные массивы. Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию...

Переставить столбцы массива так , чтобы их максимальные элементы образовали возрастающую последовательность
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию...

Переставить столбцы матрицы так, чтобы элементы её побочной диагонали образовали невозрастающую последовательность
Здравствуйте, имеется следующее задание: Разработать программу, которая переставляет столбцы...

Упорядочить столбцы матрицы так, чтобы их максимальные элементы образовывали максимальную последовательность
Дана матрица М*N упорядочить все ее столбцы так, чтобы их максимальные элементы образовывали...

4
Fixer_84
1408 / 886 / 793
Регистрация: 30.04.2016
Сообщений: 3,011
07.03.2018, 23:42 2
Лучший ответ Сообщение было отмечено AlienZz как решение

Решение

AlienZz, здравствуйте! Вот решение:

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 <bits/stdc++.h>
 
using namespace std;
 
void generateRandomMatrix(int** x, int n, int m, int a, int b)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            x[i][j] = a + rand() % (b - a);
        }
    }
}
 
void printMatrix(int** x, int n, int m)
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout.width(3);
            cout << x[i][j] << " ";
        }
        cout << "\n";
    }
}
 
void arrangeColumns(int** x, int n, int m)
{
    int* max = new int[m];
    for (int j = 0; j < m; j++)
    {
        max[j] = INT_MIN;
        for (int i = 0; i < n; i++)
        {
            if (x[i][j] > max[j])
                max[j] = x[i][j];
        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = m - 1; j > i; j--)
        {
            if (max[j] < max[j-1])
            {
                swap(max[j-1], max[j]);
                for (int i = 0; i < n; i++)
                {
                    swap(x[i][j-1], x[i][j]);
                }
            }
        }
    }
    delete [] max;
}
 
int main()
{
    srand(time(NULL));
    int n, m, a, b;
    cout << "Enter a matrix size:\n";
    cout << "n = ";
    cin >> n;
    cout << "m = ";
    cin >> m;
    int** x = new int*[n];
    for (int i = 0; i < n; i++)
    {
        x[i] = new int[m];
    }
    cout << "Enter a range for matrix elements:\n";
    cout << "a = ";
    cin >> a;
    cout << "b = ";
    cin >> b;
    generateRandomMatrix(x, n, m, a, b); //Генерируем случайную матрицу в заданном диапазоне [a; b)
    cout << "A random matrix before columns arrangement:\n";
    printMatrix(x, n, m); //Печатаем матрицу до перестановки столбцов
    arrangeColumns(x, n, m); //Переставляем столбцы матрицы
    cout << "The matrix after columns arrangement:\n";
    printMatrix(x, n, m); //Печатаем матрицу после перестановки столбцов
    for (int i = 0; i < n; i++)
    {
        delete [] x[i];
    }
    delete [] x;
    system("pause");
    return 0;
}
1
AlienZz
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 48
11.03.2018, 15:24  [ТС] 3
Не работает
0
Fixer_84
1408 / 886 / 793
Регистрация: 30.04.2016
Сообщений: 3,011
11.03.2018, 15:37 4
AlienZz, здравствуйте! Что именно не так? Приведите, пожалуйста, пример матрицы для которой не работает. Я тестировал программу перед тем как ее здесь выложить.

Добавлено через 1 минуту
AlienZz, где вы запускайте программу? В какой среде? Может быть, не хватает подключенных библиотек?
0
AlienZz
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 48
11.03.2018, 15:42  [ТС] 5
Была проблема с библиотеками, теперь всё нормально, программа работает прекрасно, спасибо!
0
11.03.2018, 15:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2018, 15:42

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

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

Поменять местами столбцы матрицы, чтобы их максимальные элементы образовывали убывающую последовательность
Напишите пожалуйста программку, спасибо. Дана матрица размера n × m. Поменять местами ее столбцы...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.