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

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

06.04.2017, 20:13. Показов 3589. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объявите двумерный целочисленный массив, в котором n строк по m элементов. Выполните генерацию массива случайными целыми числами из промежутка [a; b). Значения n, m, a, b вводятся с клавиатуры. Переставьте столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность. Выведите массив на экран в виде таблицы дважды – до и после перестановки.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2017, 20:13
Ответы с готовыми решениями:

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

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

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

15
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 46
09.04.2017, 12:05  [ТС]
Как переставить столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность?

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
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "iostream"
#include "math.h"
#include "stdlib.h"
#include <ctime>
#include <string>
#include <iomanip>
#include <random>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int mas [10] [10], x, n, m, i, j, a, b,max;
cout << "Введите колличество строк \n";
cin>>n;
cout << "Введите колличество столбцов \n";
cin>>m;
cout << "Случайное целое число для промежутка \n";
cin>>a;
cout << "Случайное целое число для промежутка \n";
cin>>b;
srand(time(NULL));
for (i=0; i<n;i++)
    for (j=0; j<m; j++)
    mas [i] [j]=a+rand()%b;
for(i=0; i<n; i++)
{
    int min = 0, max = 0;
    cout<<endl;
    for(j=0; j<m; j++)
    {
    cout<<setw(m)<<mas [i] [j]<< "\t";
    
        if (mas[i][min] > mas[i][j])
 {
min = j;
 }
if (mas[i][max] < mas[i][j])
 {
max = j;
 }
}
    int temp = mas[i][min];
        mas[i][min] = mas[i][max];
        mas[i][max] = temp;
}
cout << "\nОтсортированная матрица:" << '\n';
 
 
for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout <<setw(m)<<  mas [i] [j]<< "\t";
        }
        cout << '\n';
    }
 
getch();    
    return 0;
}
0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
09.04.2017, 12:13
Будьте добры привести пример матрицы до сортировки и после.А то я не совсем понял,как именно Вам нужно или Вы решение проблемы предоставили? просто сегодня слишком рано встал и все не очень быстро доходит
0
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 46
09.04.2017, 12:19  [ТС]
Надо в рандомной матрице переставить столбцы массива так, чтобы их максимальные элементы образовали возрастающую последовательность
0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
09.04.2017, 12:49
Нет,ну я вижу,что рандомная матрица,но не совсем понимаю,какая возрастающая последовательность.
Допустим,у нас такая матрица:

3 11 33
4 13 33
62 45 65
13 43 87
22 11 34
Что должно быть на выходе?)

Добавлено через 15 минут
Аа,всё,понял
0
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 46
09.04.2017, 12:52  [ТС]
Наверно так :/
11 3 33
13 4 33
45 62 65
43 13 87
11 22 34
0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
09.04.2017, 13:28
Да-да,я уж понял.
Вбиваю код

Добавлено через 2 минуты
Сейчас могу дать подсказку:реализуйте переменную max как одномерный массив
Добавлено через 8 минут
Ну,и потом сравните максимальные элементы столбцов и если у одного из них максимальный элемент меньше,то меняем местами все элементы столбца с соответствующими элементами в другом столбце.

Добавлено через 18 минут
И кроме того,задавать переменной max значение максимального элемента(а не номера элемента)
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
09.04.2017, 13:40
Нужно завести структуру в виде класса:
C++
1
2
3
4
class MaxInMassiv
{
int Max, CX, CY;  
}
- где,
Max - максимальный элемент;
CX, CY - его столбец и строка в массиве.
И создать массив таких элементов равный количеству столбцов исходного массива и от него плясать уже.
0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
09.04.2017, 13:42
Лучший ответ Сообщение было отмечено aleksandr685756 как решение

Решение

А вот вам и код.Изменяйте по своему усмотрению.
Правда,если вы не измените пару строк,то не скомпилируется ни с помощью MinGW,ни с Visual C

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
 #include<stdlib.h>//Код для Borland C
 #include<stdio.h>
 #include<conio.h>
 #include<iostream.h>
 void main()
 {
 srand(time(NULL));
 int a[10][10];// массивчик
 int i,j,c,f,max[10],max2,min=0,temp;//  счетчики и макс.элемент
 for(i=0;i!=10;i++)
  {
  cout<<"\n";
   for(j=0;j!=10;j++)
    {
     a[i][j]=rand()%10+1;
     cout<<"["<<a[i][j];
    }
  }
  for(i=0;i<10;i++)
  {
   max2=0;
   for(j=0;j<10;j++)
   {
    if(max2<a[i][j])
    {
    max[i]=a[i][j];
    max2=a[i][j];
    }
   }
  }                      // выводим на экран
  cout<<"\nSorted massive:";    //      сортируем
   for(i=1;i<10;i++)
   {
    for(j=9;j>i;j--)
    {
     if(max[j-1]>max[j])
      {
       for(c=0;c<10;c++)
       {
        temp=a[j][c];
        a[j][c]=a[j-1][c];
        a[j-1][c]=temp;   // меняем столбцы местами
 
       }
          c=0;
 
         for(f=0;f<10;f++)    // обновляем максимальный элемент
  {
   max[f]=0;
   max2=0;
   for(c=0;c<10;c++)
   {
    if(max2<a[f][c])
    {
    max2=a[f][c];
    max[f]=a[f][c];
    }
   }
  }
      }
    }
   }
 
  for(i=0;i<10;i++)
  {
  cout<<" \nmaximum is:"<<max[i];
   cout<<"\n";
   for(j=0;j<10;j++)
   {
   cout<<"["<<a[i][j];
   }
  }
   getch();
 
 
 }
1
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
09.04.2017, 13:44
C++
1
MaxInMassiv MaxArray[m];
1) Потом нужно найти каждый из этих максимальных элементов в каждом столбце и записать их в эти элементы(что я сказал выше);
2) Потом нужно отсортировать этот массив по возрастанию. Жаль конечно что тут не подойдет стандартная функция sort(), придется свою сортировку писать;
3) Потом сортированный массив укажет в каком порядке расположить столбцы.
0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
09.04.2017, 13:49
Ну,да.У меня код получился ошибочный Именно ошибочный.А в результате очень справедливых правил форума редактировать теперь нельзя.А программа очень подвела сначала все правильно выводила,и только когда я эту ошибку выложил,показала ошибку.
0
11.04.2017, 21:23

Не по теме:

DemolitionMan, Если б вы сначала немножко подумали, а потом писали бы свои не слишком умные и обоснованные отзывы, оно может и к лучшему получилось бы...:cry:

0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
12.04.2017, 08:18
А что друзья? Он там, в программе, допустил грубейшие фатальные ошибки.
1) По условию задачи надо искать максимумы в столбцах, а не в строках. У него в строках, да.
2) Так массивы не выводятся - это бред полнейший, как у него:"[1[2[3[4[5[6[7[8[9[10" - что это за бред вообще, кто так программы пишет.
0
12.04.2017, 12:13

Не по теме:

Цитата Сообщение от DemolitionMan Посмотреть сообщение
Он ... допустил грубейшие фатальные ошибки.
Понимаете, раздел называется "для начинающих". И тут за ошибки казнить как-то не принято. Поправлять - да! Учить - да! А если за каждую ошибку давать отрицательный отзыв, так это вы скоро все вообще без репы останетесь. Отзывы - оружие сильное. Обидное. И обнажать его без нужды - себя не уважать.

0
9 / 1 / 2
Регистрация: 09.04.2017
Сообщений: 14
12.04.2017, 16:43
Господа,я согласен,что у меня здесь были ошибки,массивы я для себя выводил-просто мне удобнее смотреть на это так

просто за n-ное количество лет без практики я подзабыл способы сортировки больше такого не повторится.

Добавлено через 1 час 1 минуту
Кстати,я нашел было ошибку,хотел поправить действительно неверный вывод,да поскольку на правку коммента дается всего-ничего-около 5 минут-было уже поздно.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.04.2017, 17:20
Цитата Сообщение от SteveZeleniy Посмотреть сообщение
было уже поздно.
Я обычно шлю вдогонку пост - "Ох, ошибся я, дурачина! Строки Н-К следует читать так ...."
Ну и маленький секретик. Если никто еще не ответил, ваш очередной пост прилепится к предыдущему, и вы еще 5 минут получаете его весь в полное распоряжение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2017, 17:20
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-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 с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru