Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Дана матрица 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 в 10:48.
NickMaels вне форума   Ответить с цитированием
Старый 03.02.2018, 21:11   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,959
Репутация: 6285
По умолчанию

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

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

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

У Вас абсолютно бредовый код. Вот в этом месте:
Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


01:08.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru