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

Сформировать одномерный массив из элементов заданного массива, расположенных над главной диагональю

12.01.2019, 20:15. Просмотров 1424. Ответов 8
Метки нет (Все метки)

Помогите пожалуйста с кодом.



Дан двумерный массив размером nxn. Сформировать одномерный массив из элементов заданного массива, расположенных над главной диагональю
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2019, 20:15
Ответы с готовыми решениями:

Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов заданного массива расположенных над главной диагональю.
помогите решить=)Дан двумерный массив размерностью Н. сформировать одномерный массив из элементов...

Сформировать одномерный массив из элементов двумерного массива, расположенных над главной диагональю
Ребята помогите пожалуйста с задачей, прям выручите, Условие такое: Дан двумерный массив размером...

Сформировать одномерный массив из элементов матрицы, расположенных над главной диагональю
Дан двумерный массив размером nxn. Сформировать одномерный массив из элементов заданного массива,...

Дан двумерный массив. Сформировать одномерный массив из элементов заданного массива, расположенных под побочной диагональю.
Дан двумерный массив размером n x n. Сформировать: Одномерный массив из элементов заданного...

8
Параллельный Кот
1874 / 807 / 339
Регистрация: 25.03.2016
Сообщений: 1,990
Завершенные тесты: 1
12.01.2019, 20:22 2
Цитата Сообщение от Quinta_17 Посмотреть сообщение
Помогите пожалуйста с кодом.
А где сам код, с которым надо вам помочь?
1
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 11
12.01.2019, 20:55  [ТС] 3
не понимаю как задать массив из случайных чисел, и как потом вывести одномерный массив из элементов главной диагонали. Можете поподробнее объяснить? Хочу разобраться, а не тупо скатать.
0
440 / 327 / 171
Регистрация: 01.07.2015
Сообщений: 1,162
12.01.2019, 21:03 4
Лучший ответ Сообщение было отмечено Quinta_17 как решение

Решение

Цитата Сообщение от Quinta_17 Посмотреть сообщение
не понимаю как задать массив из случайных чисел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <vector>
#include <iostream>
#include <random>
 
using namespace std;
 
int main() {
  int n;
  cin >> n;
 
  vector<vector<int>> a(n, vector<int>(n));
 
  random_device rd;
  mt19937 eng(rd());
  uniform_int_distribution<int> dist(-10, 10);
 
  for (auto& i : a) {
    for (auto& j : i)
      j = dist(eng);
  }
}

Главная диагональ - a[i][i]. Банальный проход по массиву
1
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 11
12.01.2019, 21:14  [ТС] 5
Цитата Сообщение от ReDoX Посмотреть сообщение
Главная диагональ - a[i][i]. Банальный проход по массиву
спасибо
0
Параллельный Кот
1874 / 807 / 339
Регистрация: 25.03.2016
Сообщений: 1,990
Завершенные тесты: 1
12.01.2019, 21:23 6
Как двумерный массив создать, знаете?
Напоминалка: массив массивов

C++
1
2
3
4
int **mtx = new int*[n];
for (unsigned i = 0; i < n; i++) {
    mtx[i] = new int[n];
}


Как заполнить неслучайными числами знаете? Если да, то случайными числами заполнить не составит труда. Есть два способа получить случайные числа. Тут уже на вкус и цвет, мне второй больше понравился.
Случайные числа в стиле Си

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main() {
    const int N = 1000;
    srand(time(nullptr));
    int random_number = rand() % N; // Случайное число в интервале [0; N).
    cout << random_number << endl; 
    return 0;
}

Случайные числа в стиле C++

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <random>
using namespace std;
 
int main() {
    const int N = 1000;
    random_device rd;
    uniform_int_distribution<> dist(0, N);
 
    int random_number = dist(rd); // Случайное число в интервале [0; N].
    cout << random_number << endl;
    return 0;
}

Условие нахождения элемента на главной диагонали: равенство индексов.
Условие нахождения элемента выше главной диагонали: i < j
C++
1
2
3
4
5
6
// Цикл по элементам, лежащим выше главной диагонали.
for (unsigned i = 0; i < n; i++) {
    for (unsigned j = i + 1; j < n; j++) {
        cout << mtx[i][j];
    }
}
Сколько таких элементов? Давайте посчитаем. В первой строке (n-1), во второй (n-2), ..., в предпоследней 1, в последней вообще нет. Итого сумма из n - 1 слагаемых вида (n-1) + (n-2) + ... + 1. Можно заметить, что это сумма элементов арифметической прогрессии, сворачивается в формулу https://www.cyberforum.ru/cgi-bin/latex.cgi?{n \cdot (n - 1)} \over 2. Это число пригодится для выделения памяти под одномерный массив для элементов, лежащих выше/ниже главной/побочной диагонали.
1
4082 / 2796 / 1731
Регистрация: 18.12.2017
Сообщений: 8,758
13.01.2019, 00:24 7
Цитата Сообщение от valen10 Посмотреть сообщение
Сколько таких элементов? Давайте посчитаем. В первой строке (n-1), во второй (n-2), ..., в предпоследней 1, в последней вообще нет. Итого сумма из n - 1 слагаемых вида (n-1) + (n-2) + ... + 1. Можно заметить, что это сумма элементов арифметической прогрессии, сворачивается в формулу .
так не проще: всего n*n элементов, на диагонали n элементов, над диагональю (n*n-n)/2
1
0 / 0 / 0
Регистрация: 15.12.2018
Сообщений: 11
13.01.2019, 12:10  [ТС] 8
Цитата Сообщение от valen10 Посмотреть сообщение
Условие нахождения элемента на главной диагонали: равенство индексов.
Условие нахождения элемента выше главной диагонали: i < j
не сработало
0
Параллельный Кот
1874 / 807 / 339
Регистрация: 25.03.2016
Сообщений: 1,990
Завершенные тесты: 1
13.01.2019, 12:49 9
Цитата Сообщение от Quinta_17 Посмотреть сообщение
не сработало
Пока все спали, вы сломали математику, и теперь 2 + 2 = 5? Надеюсь, что нет. Скорее всего у вас допущена ошибка. Поэтому чтобы мы тут не занимались гаданиями, лучше сразу описывайте проблему развернуто, желательно с демонстрацией исходного кода.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2019, 12:49

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

Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива.
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти...

Дан двухмерный массив размером n*n. Сформировать одномерный массив из элементов заданного массива, расположенных над главной диагональю
Дан двухмерный массив размером n*n. Сформировать одномерный массив из элементов заданного массива,...

Сформировать одномерный массив из элементов заданного массива, расположенных под главной диагональю
Дан двумерный массив размером n . Сформировать одномерный массив из элементов заданного массива,...

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


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

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

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