Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 4
1

Из элементов главной диагонали матриц А и В сформировать векторы Х и Т, соответственно

13.03.2018, 22:45. Просмотров 970. Ответов 2
Метки нет (Все метки)


Из элементов главной диагонали матриц А и В сформировать векторы Х и Т, соответственно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2018, 22:45
Ответы с готовыми решениями:

Найти суммы тех элементов, которые находятся, соответственно ниже, выше, и на главной диагонали.
Дано действительную матрицу порядка N. Рассмотреть только те элементы, которые находятся в рядах,...

Определить у какой из матриц сумма элементов главной диагонали меньше
Даны два двумерных массива a и b размером n×n и m×m соответственно. Требуется определить, у какого...

Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали
Дана квадратная матрица натуральных чисел.Определить верно ли утверждение:Cреднее арифметическое...

Дана матрица размера n*n. Сосчитать сумму элементов главной диагонали всех матриц и найти их определители
Дана матрица размера n*n. Развернуть ее на 90°, 180°, 270°. Сосчитать сумму элементов главной...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
2
1742 / 1335 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
13.03.2018, 23:09 2
Лучший ответ Сообщение было отмечено grigoryev44552 как решение

Решение

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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <random>
 
void GenMatr(std::vector<std::vector<int>> &a) {
    std::default_random_engine gen{ std::random_device()() };
    std::uniform_int_distribution<> dist(-10, 10);
    for (auto& r : a) std::generate(r.begin(), r.end(), [&dist, &gen] {return dist(gen); });
}
 
void PrintMatr(std::vector<std::vector<int>> a) {
    for (auto r : a) {
        std::copy(r.begin(), r.end(), std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << "\n";
    }
}
 
std::vector<int> ToVector(std::vector<std::vector<int>> a) {
    std::vector<int> x;
    for (std::size_t i = 0; i < a.size(); i++) x.push_back(a[i][i]);
    return x;
}
 
void PrintVector(std::vector<int> a) { 
    std::copy(a.begin(), a.end(), std::ostream_iterator<int>(std::cout, " ")); 
    std::cout << "\n"; 
}
 
int main() {
    int n = 5, m = 6;
    std::vector<std::vector<int>> a(n, std::vector<int>(n)), b(m, std::vector<int>(m));
    GenMatr(a); PrintMatr(a);
    std::cout << "\n";
    GenMatr(b); PrintMatr(b);
    std::vector<int> x = ToVector(a), t = ToVector(b);
    std::cout << "\n";
    PrintVector(x); PrintVector(t);
    system("pause");
    return 0;
}
0
Модератор
1618 / 1075 / 483
Регистрация: 17.07.2012
Сообщений: 5,303
14.03.2018, 04:52 3
Цитата Сообщение от Hitoku Посмотреть сообщение
C++
1
2
3
4
5
std::vector<int> ToVector(std::vector<std::vector<int>> a) {
    std::vector<int> x;
    for (std::size_t i = 0; i < a.size(); i++) x.push_back(a[i][i]);
    return x;
}
Лучше вот так, потому что push_back допускает реаллокацию, а мы ведь уже знаем сколько элементов в векторе.

C++
1
2
3
4
5
std::vector<int> ToVector(std::vector<std::vector<int>> a) {
    std::vector<int> x(a.size()); // ну или x.reserve(a.size()) и потом push_back в цикле
    for (std::size_t i = 0; i < a.size(); i++) x[i] = a[i][i];
    return x;
}
Добавлено через 2 минуты
Ну и type alias думаю тут в тему
C++
1
2
using Vector = std::vector<int>;
using Matrix = std::vector<Vector>;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2018, 04:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали?
Дана квадратная матрица натуральных чисел,( получаемая через rand()) .Определить, верно ли...

Сформировать одномерный массив из значений элементов матрицы, расположенных на главной диагонали
Дана матрица C(N,N). Сформировать одномерный массив из значений элементов матрицы, расположенных на...

Сформировать симметричную матрицу из элементов, лежащих выше главной диагонали исходной
Сформировать из элементов А, лежащих на главной диагонали и над ней, симметричную матрицу С...

Сформировать массив из положительных элементов матрицы, расположенных выше главной диагонали
Дана матрица А(n*m). Сформировать одномерный массив из положительных элементов этой матрицы,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.