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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2018, 20:08   #1
NickMaels
Новичок
Джуниор
 
Регистрация: 03.02.2018
Сообщений: 1
По умолчанию Напишите программу, которая переставит строки матрицы таким образом, чтобы элементы последнего столбца стали упорядоченными в убывающем порядке

Дана матрица A[1..n,1..m] целых чисел. Напишите программу, которая переставит строки матрицы А таким образом, чтобы элементы последнего столбца стали упорядоченными в убывающем порядке. Для упорядочивания использовать метод сортировки посредством выбора и новую матрицу. Полученную матрицу вывести на экран.На C++
Код:
#include <iostream>

using namespace std;


int matrix[500][500];


int main()

{
    int n,m;

    cout<<"Enter the number of lines:";
    cin>>n;
    cout<<"Enter the number of columns:";
    cin>>m;

    cout<<"***********************************"<<endl;
    cout<<"Fill the matrix:"<<endl;

    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>matrix[i][j];

            int val, Temp;

            for (int i=0;i<n;i++) {
            for (int e=0;e<m-1;e++) {
            val=e;
            for (int j=e+1;j<m;j++)
                if (matrix[j][i] > matrix[val][i]){
                   val=j;
            Temp = matrix[e][i];
            matrix[e][i] = matrix[val][i];
            matrix[val][i] = Temp;
        }

        }
}


                    cout<<"***********************************"<<endl;
                    cout<<"Sorted Matrix:"<<endl;

                    for(int i=0;i<n;i++){
                    for(int j=0;j<m;j++)
                            cout<<matrix[i][j]<<"\t";
                            cout<<"\n";
                            }


}
Данная программа не работает если задать разные размеры,к примеру 4 к 5 ,а если ввести 5 к 5,то задача работает,помогите найти ошибки или внесите коррективы.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 05.02.2018 в 09:48.
NickMaels вне форума Ответить с цитированием
Старый 03.02.2018, 20:11   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Здесь не решатель задач

Покажите свои наработки, конкретные вопросы и т.п.
http://www.programmersforum.ru/announcement.php?f=31

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.02.2018, 17:03   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

У Вас абсолютно бредовый код. Вот в этом месте:
Цитата:
Сообщение от NickMaels Посмотреть сообщение
Код:
for(int i=0;i<n;i++) {
for(int e=0;e<m-1;e++) {
val=e;
for (int j=e+1;j<m;j++)
if (matrix[j][i] > matrix[val][i]){
val=j;
Temp = matrix[e][i];
matrix[e][i] = matrix[val][i];
matrix[val][i] = Temp;
Сначала i обозначает номер строки в массиве, потом уже i обозначает столбец. Что за бред? Кстати, поэтому работает с квадратными матрицами, а с прямоугольными - нет.
e вроде как тоже, сначала начинали как номер столбца - потом он начал фигурировать уже как номер строки. Бред полнейший. Дорабатывать тут нецелесообразно, проще новую программу написать. Понятно?
Да и код нужно вставлять в квадратные кавычки, а не в угловые. И это тоже надеюсь сделаете.

Вот где я разбирался с сортировкой выбором:
https://function-x.ru/cpp_algoritmy_...tml#paragraph1
Код работает - я проверял, хотя там в описании над кодом написано, что берется наибольший элемент и запихивается в конец - работает сортировка совершенно наоборот. Берется наименьший элемент и пихается вначало. Потом этот элемент прибавляется на 1.
Ну что, NickMaels, учиться будем? Учитесь плотнее и не ленитесь.:D
Cuprum5 на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль преобразовать массив таким образом чтобы сначала располагались все элементы целая часть которых не превышает единицу а потом все остальные Matvey Sadkov Паскаль, Turbo Pascal, PascalABC.NET 6 09.10.2016 15:52
Дана вещественная матрица размером NxM. Переставить её строки и столбцы таким образом, чтобы: Анна997 Паскаль, Turbo Pascal, PascalABC.NET 2 24.04.2016 09:00
Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных Новичок63 Помощь студентам 4 08.11.2015 16:30
в Делфи написать программу с формированием матрицы с определенным весом строки, столбца, с длиной строки, столбца Milanista Помощь студентам 20 05.06.2015 17:38
Преобразовать массив таким образом, чтобы сначала располагались элементы из интервала [a,b] , а затем все parka Паскаль, Turbo Pascal, PascalABC.NET 7 15.05.2011 22:17