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

Перестановка первого и второго столбцов матрицы

08.02.2020, 16:26. Показов 4848. Ответов 27

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно дописать программу перестановкой первого и второго столбца массива
А также снова сделать вывод уже измененной матрицы.

C++
1
2
3
4
5
6
7
int buf=a[0][0];
for(i=0;i<n;i++)
 {
 buf=a[i][0];
 a[i][0]=a[i][1];
 a[i][1]=buf;
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2020, 16:26
Ответы с готовыми решениями:

Получить из матрицы B[N][M] из матрици A[N][M] путем перестановки столбцов- первого с последни, второго с предпослндним и т.д.
Помогите пожалуста нужно написать алгоритм и программу в фри паскале=) вот задание: Получить из матрицы B из матрици A путем перестановки...

Матрицы. Перестановка столбцов
Помогите пож-та разобраться с задачкой: В матрице переставить местами столбцы с максимальными и минимальными элементами.

Перестановка столбцов матрицы.
на паскале выполнить задачу-дана матрица вещественных чисел размерностью м на н.Требуется получить новую матрицу перестановкой 1 столбца с...

27
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 20:10  [ТС]
Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
for(int i = 0; i < n; i++)
    swap(a[0][0],a[0][2]);
        swap(a[1][0],a[1][2]);
            swap(a[2][0],a[2][2]);
Столбцы)

C++
1
2
3
4
for(int i = 0; i < n; i++)
    swap(a[0][0],a[2][0]);
        swap(a[0][1],a[2][1]);
            swap(a[0][2],a[2][2]);
Строки)

Спасибо, благодаря вам это понял. Осталось понять , что делать если размерность разная.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 20:59
Цитата Сообщение от Ifrom9 Посмотреть сообщение
это понял
к сожалению нет.
Цитата Сообщение от Ifrom9 Посмотреть сообщение
for(int i = 0; i < n; i++)
    swap(a[0][0],a[0][2]);
        swap(a[1][0],a[1][2]);
            swap(a[2][0],a[2][2]);
если нет фигурных скобок цикл относится только к первой строке после него. то есть Вы три раза поменяли a[0][0] с a[0][2] (но значения поменялись, так как размерность нечётная - сначала поменяли, потом восстановили назад, потом ещё раз поменяли). а цикл в данной задаче и ставится для того, чтобы после него была одна строка (там ещё переменная i вместо индекса) - прочитайте ещё раз, то что Вам говорилось раньше.
Цитата Сообщение от Ifrom9 Посмотреть сообщение
А если размерность матрицы вводится с клавиатуры и каждый раз она разная?
тогда используйте не статический, а динамический массив:
C++
1
2
3
4
5
6
7
8
    int n, m;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
 
// объявление динамического массива   
      int **a = new int*[n]; 
    for (int i = 0; i < n; i++)
       a[i]=new int[m];
1
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 22:34  [ТС]
Без цикла

C++
1
2
3
swap(a[0][0],a[2][0]);
    swap(a[0][1],a[2][1]);
    swap(a[0][2],a[2][2]);
если с циклом , то
C++
1
2
for(int j = 0; j < m; j++){
    swap(a[0][j],a[2][j]);}
При условии размерности матрицы 3 х3
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 22:52
Ifrom9, правильно только комментируйте что меняете

задача для Вас: поменяйте первый столбец с третьим столбцом в матрице 3х4

Добавлено через 4 минуты
Цитата Сообщение от Ifrom9 Посмотреть сообщение
При условии размерности матрицы 3 х3
При условии размерности матрицы 3хm
0
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 22:55  [ТС]
C++
1
2
3
for(int i = 0; i < n; i++){
    swap(a[i][0],a[i][2]);}
//Меняем 1(й) и 3(й)столбцы местами
Сейчас постараюсь разобраться с матрицей, при условии ввода с клавиатуры)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 23:02
Ifrom9, Вы скоро мастер класс будете давать по обмену столбцов местами комментарий не внизу, а вверху кода. или правее строки если комментируете строку.
1
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 23:59  [ТС]
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
#include<iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(){
setlocale(0,"");
int n, m;
cout << "n=";
cin >> n;
cout << "m=";
cin >> m;
 
 int **a = new int*[n];
    for (int i = 0; i < n; i++)
       a[i]=new int[m];
delete []a;
 
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=rand()%30-5;}
}
 
 
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j]<<"\t ";
}
cout<<"Еще не переставили\n"<<endl;}
for(int i = 0; i < n; i++){
    swap(a[i][0],a[i][2]);} //Меняем 1(й) и 3(й)столбцы местами
 
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j]<<"\t ";}
    cout<<"Переставили \n"<< endl;}}
А возможно ли при динамическом массиве поменять первый и последний столбец или строку ?
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2020, 03:21
Цитата Сообщение от Ifrom9 Посмотреть сообщение
А возможно ли при динамическом массиве поменять первый и последний столбец
конечно возможно:
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
 
        int **a = new int*[n];
    for (int i = 0; i < n; i++)
          a[i]=new int[m];
       
    cout << "Matrix:\n";
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
        a[i][j]=rand()%9+1;
        cout << a[i][j] << " ";
        }
    cout << "\n";    
    } 
    
    for(int i = 0; i < n; i++)
        swap(a[i][0],a[i][m-1]);
 
    cout << "Modified matrix:\n";
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)        
        cout << a[i][j] << " ";       
    cout << "\n";    
    }
    
    // освобождение памяти динамического массива 
    for (int i = 0; i < n; i++)
    delete[]a[i];
    delete[]a;
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2020, 03:21

Перестановка столбцов матрицы
Дан двумерный числовой массив n*m. Найти массив получающийся перестановкой столбцов первого с последним, второй с предпоследним и т.д

Перестановка столбцов матрицы
Составьте программу перестановки столбцов двумерного массива K, при которой i-й столбец становиться i+1-м, а последний становиться первым.

Перестановка столбцов матрицы
Я написал программу, но в ней не могу придумать как мне переставить столбцы в матрице так, как я хочу. Например столбцы 0 1 2...

Перестановка столбцов матрицы.
дайте плиз ссылку..кто знает где можно скачать Turbo Professional Menu Maker 5.05 uses crt; type Matr=array of real; var ...

Перестановка столбцов матрицы
Расположить столбцы матрицы D в порядке возрастания элементов k-ой строки (1 ≤ k ≤ М).


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru