Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.09.2018
Сообщений: 27

Отсортировать столбцы по значению последней строки

11.11.2018, 21:40. Показов 4009. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перестановка столбцов по возрастанию последней строки
Задан двумерный массив целых чисел размера N x M. Переставьте в массиве столбцы так, чтобы значения в последней строке массива шли по возрастанию.

Формат входных данных
В первой строке ввода записаны два целых положительных числа N и M - количество строк и столбцов исходного массива (1 ≤ N, M ≤ 100).

В каждой из последующих N строк записаны через пробел M целых неотрицательных чисел - значения элементов массива, не превосходящие 10^9.

Все значения в массиве различны.

Формат результата
Выведите исходную матрицу с переставленными столбцами. Необходимо поменять местами столбцы так, чтобы значения в последней строке шли по возрастанию.

Прошу помочь с моим кодом. Столбцы менять местами у меня получилось, но вот сортировать их нет.

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
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
 
 
void bubbleSort(int *arr, int N, int M) 
{ 
   int i, j; 
   for (i = 0; i < N-1; i++)          
       for (j = 0; j+i < N-1; j++)  
           if (*(arr + M * (N-1) + j) > *(arr + M * (N-1) + j + 1)) 
               for(int m = 0; m < N; m++){
                   swap(*(arr + m * M + j) , *((arr + m * M + j + 1)));
               }
}
 
int main(int argc, char** argv) {
    int N, M;
    cin >> N >> M;
    int arr[N][M];
    
    
    for(int i = 0; i < N; i++){
        for(int j = 0; j < M; j++){
            cin >> arr[i][j];
        }
    }
    
    bubbleSort((int*) arr, N, M);
    
    cout << endl;
    for(int i = 0; i < N; i++){
        for(int j = 0; j < M; j++){
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
    
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2018, 21:40
Ответы с готовыми решениями:

Отсортировать столбцы в двумерном массиве по значению элементов первой строки методом Шелла
Подскажите пожалуйста как отсортировать столбцы в двумерном массиве по значению элементов первой строки методом Шелла! Я сделал...

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

Расположить столбцы матрицы в порядке убывания элементов последней строки.
Помогите составить алгоритм program zadacha; uses crt; type matrix=array of integer; var a:matrix; ...

4
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.11.2018, 21:48
Цитата Сообщение от student256 Посмотреть сообщение
C++
1
2
   for (i = 0; i < N-1; i++)          
       for (j = 0; j+i < N-1; j++)
Вам нужно рассказать, как работает Сортировка простыми обменами? Ну хорошо, смотрите.

C++
1
2
for (int i = N - 1; i >= 0; --i) 
        for (int j = 0; j < i; j++)
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.11.2018, 22:04
Лучший ответ Сообщение было отмечено student256 как решение

Решение

В 10-11 должна быть M. По столбцам же идёшь.
1
0 / 0 / 0
Регистрация: 10.09.2018
Сообщений: 27
11.11.2018, 22:10  [ТС]
Спасибо! Вы мне очень помогли!
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
11.11.2018, 22:21
Цитата Сообщение от nmcf Посмотреть сообщение
В 10-11 должна быть M
Точно, не заметил, что M и N перепутаны местами. Обычно наоборот.

student256, извиняюсь за неправильный ответ. Реализация сортировки непривычная, вот и показалось, что ошибка в ней. Ваш вариант тоже правильный.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2018, 22:21
Помогаю со студенческими работами здесь

Расположить столбцы матрицы в порядке возрастания элементов последней строки
Задание 2: Дан двумерный массив. Расположить столбцы массива в порядке возрастания элементов последней строки.

Отсортировать слова строки по последней букве по алфавиту
Ввести строку и вывести отсортированную строку по последней букве.

Нужно отсортировать по возрастанию элементы последней строки
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Отсортировать строки в алфавитном порядке по последней букве
Привет всем, ребят дело такое,надо ввести 5 строк и отсортировать их в алфавитном порядке по последней букве, написал код для сортировки по...

Отсортировать положительные элементы последней строки матрицы по убыванию
Разработка в среде Turbo Pascal программы вставки элементов в двумерный массив. Дан целочисленный двумерный массив. 1 Вставить первую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru