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

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2020, 16:26
Ответы с готовыми решениями:

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

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

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

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

27
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 20:10  [ТС] 21
Author24 — интернет-сервис помощи студентам
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
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 20:59 22
Цитата Сообщение от 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  [ТС] 23
Без цикла

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
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 22:52 24
Ifrom9, правильно только комментируйте что меняете

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

Добавлено через 4 минуты
Цитата Сообщение от Ifrom9 Посмотреть сообщение
При условии размерности матрицы 3 х3
При условии размерности матрицы 3хm
0
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 22:55  [ТС] 25
C++
1
2
3
for(int i = 0; i < n; i++){
    swap(a[i][0],a[i][2]);}
//Меняем 1(й) и 3(й)столбцы местами
Сейчас постараюсь разобраться с матрицей, при условии ввода с клавиатуры)
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2020, 23:02 26
Ifrom9, Вы скоро мастер класс будете давать по обмену столбцов местами комментарий не внизу, а вверху кода. или правее строки если комментируете строку.
1
0 / 0 / 0
Регистрация: 04.02.2020
Сообщений: 16
09.02.2020, 23:59  [ТС] 27
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
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2020, 03:21 28
Цитата Сообщение от 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
10.02.2020, 03:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2020, 03:21
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru