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

При четном количестве столбцов в матрице код не меняет местами столбцы

04.11.2019, 10:24. Показов 1937. Ответов 2

Студворк — интернет-сервис помощи студентам
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
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <iomanip>
#include <locale.h>
#include <cstdlib> 
#include <cmath> 
#include <time.h>
#define USE MATH DEFINES
using namespace std;
int main()
{
    setlocale(0, "");
    srand(time(NULL) * 1000);
    int** matrix = NULL;
    int N;
    int M;
    cout << "Введите количество строк N:";
    cin >> N;
    cout << "Введите количество столбцов M:";
    cin >> M;
    // описание массива и выделение памяти
    matrix = new int* [N];
    int row, col, a, b, k, p;
    for (row = 0; row < N; row++)
        matrix[row] = new int[M];
    // заполнение массива
    for (row = 0; row < N; row++)
    {
        for (col = 0; col < M; col++)
        {
            matrix[row][col] = rand() % 10 + 1;
        }
    }
    // вывод массива на экран
    cout << "Matrix" << endl;
    for (row = 0; row < N; row++)
    {
        for (col = 0; col < M; col++)
        {
            cout << setw(3) << matrix[row][col];
        }
        cout << endl;
    }
    cout << "Введите номера столбцов a , b " << endl;//вводим номера столбцов которые нужно поменять 
    cin >> a >> b;
    a -= 1, b -= 1;
    cout << endl;
    for (row = 0; row < N; row++)
        for (col = 0; col < M; col++)
        {
            int temp = matrix[row][a]; // временному элементу присваиваем  элемент a
            matrix[row][a] = matrix[row][b]; // элементу a элемент b
            matrix[row][b] = temp;        // b временный
        }
 
    for (row = 0; row < N; row++)
        for (col = 0; col < M; col++)
        {
            if (col % M == 0)
                cout << endl;
            cout << setw(3) << matrix[row][col]; // выводим изменённую матрицу
 
        }
    cout << endl;
    col = a;
    k = 1;
    for (row = 0; row < N; row++)
    {
        k = k * matrix[row][col];
    }
    cout << k << endl;
    col = b;
    p = 1;
    for (row = 0; row < N; row++)
    {
        p = p * matrix[row][col];
    }
    cout << p << endl;
    cout << "Сумма произведений a * b= " << k * p << endl;//выводим суму произведения элементов столбцов a,b
    // высвобождение памяти
    for (row = 0; row < N; row++)
    {
        delete[]matrix[row];
        matrix[row] = NULL;
    }
    delete[]matrix;
    matrix = NULL;
    system("PAUSE");
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2019, 10:24
Ответы с готовыми решениями:

Написать функцию, которая меняет местами четные столбцы с четными строками в матрице
написать и протестировать функцию которая меняет местами четные столбцы с четными строками в матрице a #include&lt;stdio.h&gt; ...

Написать макрос, который при выделении матрицы мышкой меняет местами столбцы, содержащие max и min элементы
Люди!Помогите студенту!! Дана матрица 9*9 в excel.Необходимо написать макрос,который при выделении матрицы мышкой меняет местами столбцы,...

Написать подпрограмму, которая меняет местами столбцы матрицы
Написать подпрограмму, которая меняет местами столбцы матрицы Z, находящиеся рядом с серединой.

2
43 / 39 / 5
Регистрация: 16.09.2019
Сообщений: 285
04.11.2019, 11:22
Условие задачи полностью предоставь.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.11.2019, 12:52
Лучший ответ Сообщение было отмечено rookie v shtate как решение

Решение

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
#include <iostream>
#include <cstdlib>  
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));    
    int N, M, a, b; 
    long long mult_a=1LL, mult_b=1LL;
    cout << "N="; cin >> N;
    cout << "M="; cin >> M;    
    
    int** matrix = new int* [N];    
    for (int i = 0; i < N; i++)
        matrix[i] = new int[M];        
    
    cout << "Matrix:\n";
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            matrix[i][j]=rand()%9 + 1;
            cout << matrix[i][j] << " ";
        }
    cout << "\n";    
    }
   
    cout << "Number cols a, b:\n"; 
    cin >> a >> b;
    a--; b--;
    
    for (int i = 0; i < N; i++)
        swap(matrix[i][a],matrix[i][b]);        
       
    cout << "Modified matrix:\n";
    for (int i = 0; i < N; i++)
    {
        mult_a*=matrix[i][a];
        mult_b*=matrix[i][b];
        for (int j = 0; j < M; j++)                    
            cout << matrix[i][j] << " ";             
    cout << "\n";
    }    
 
    cout << "mult_a + mult_b = " << mult_a + mult_b << "\n";
    
    for (int i = 0; i < N; i++)
    delete[]matrix[i];
    delete[]matrix;    
system("pause");
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2019, 12:52
Помогаю со студенческими работами здесь

Нужна программа, которая меняет местами первый и последний столбцы матрицы
нужна программа, которая меняет местами первый и последний столбцы матрицы. понятия не имею как в этом синтаксисе матрицу...

Создать 3 функции: одна заполняет массив, вторая выводит на экран, третья — меняет столбцы местами
Всем доброго времени суток. Задание следующее: вводить с клавиатуры размерность двумерного массива N*M, заполняя его случайными числами, и...

Поменять местами в матрице i-й и j-й столбцы
Даны натуральные числа i, j, вещественная матрица размера M x N. Поменять местами в матрице i-й и j-й столбцы.

Поменять местами столбцы в матрице
Код: #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt; using namespace std; ...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru