0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 5
1

С++ задача вектор векторов(редактирование матрицы)

29.11.2018, 16:19. Показов 645. Ответов 3
Метки нет (Все метки)

Всем привет.
Есть прога, должна обнулять диагональные элементы диагоналей(главной и побочной ), обнулять элементы выше главной диагонали и элементы ниже побочной диагонали.(без использования if) Всё работает, но преподаватель сказал переделать обычные циклы на range based for в трех местах: на выводе заполненной матрицы в начале, в самом конце на выводе итоговой, и в той строчке, где обнуляются главные диагональные элементы(я её пометил). Как я ни пробовал обнулить, не получалось.Помогите, буду очень благодарен.
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
#include "pch.h"
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    cout << "Введите порядок матрицы М" << endl;
    int m;
    cin >> m;
    vector<vector<int>> vec(m, vector<int>(m));
    cout << "Введите элементы массива" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cin >> vec[i][j];
        }
    }
    cout << "Вывод исходной матрицы" << endl;
    for (vector<int>& v : vec)
    {
        for (int& vect : v)
        {
            cout << vect << " ";
        }
        cout << endl;
    }
    for (vector<int>& v : vec)
    {
        for (int& vect : v)
        {
            !тут должен быть код!
        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < m; j++)
        {
            vec[j][m - j - 1] = 0;
        }
    }
    for (int i = 0; i < m - 1; i++)
    {
        for (int j = i + 1; j < m; j++)
        {
            vec[i][j] = 0;
        }
    }
    for (int i = 1; i < m; i++)
    {
        for (int j = m - 1; j > m - i - 1; j--)
        {
            vec[i][j] = 0;
        }
    }
    cout << "Вывод конечной матрицы" << endl;
    for (vector<int>& v : vec)
    {
        for (int& vect : v)
        {
            cout << vect << " ";
        }
        cout << endl;
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 16:19
Ответы с готовыми решениями:

Как сумировать два вектор векторов (матрицы)?
В задании нужно создать два вектора векторов(двумерный вектор), которые нужно сложить, вычесть,...

не могу сделать так чтоб я сам вводил матрицы) задача умножения матрицы на вектор
Всем привет. вобщем задача моя такова , что я задал готовое количество элементов в матрицу и в...

Добавление элементов в многомерный вектор (вектор векторов)
Я могу создавать двухмерный вектор таким способом: vector&lt;vector&lt;int&gt;&gt; a; Он представляет из себя...

Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для которых модуль их скалярного произведения S имеет максим
Рассматривая каждую строку прямоугольной матрицы как вектор, найти номера векторов-строк, для...

3
Модератор
Эксперт С++
12780 / 10236 / 6150
Регистрация: 18.12.2011
Сообщений: 27,405
29.11.2018, 16:25 2
Обнулить диагональ:
C++
1
2
for (int i = 0; i < m; i++)
     vec[i][i]=0;
0
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 5
29.11.2018, 16:40  [ТС] 3
Нет, мне нужно через range based for.Циклы чтобы шагать по vector<vector>> задан(посмотрите чуть выше обозначенной строчки), а как обнулить, не могу понять.
0
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 5
04.12.2018, 18:08  [ТС] 4
Если вдруг кому пригодиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (vector<int>& v : vec)
    {
        ch = 0;
        min++;
        for (int& vect : v)
        {
            ch++;
                if (ch==min)
                {
                    vect = 0;
                }
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2018, 18:08
Помогаю со студенческими работами здесь

Разбить вектор на вектор векторов по разделителю
По простому сделал for (size_t i = 0; i &lt; new_arr.size(); i++) { ...

Вектор из векторов
Добрый день, подскажите пожалуйста , как сделать из вектора вектор большей длины. Например: A=,...

Вектор векторов
можно ли создать вектор векторов? Если да, то подскажите, пожалуйста, как, а то гугл ничего...

Вектор векторов
Вектор векторов - плюсы и минусы, альтернативы. Подскажите новичку) P.S. Внутри массив из 2х...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru