0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62

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

11.03.2015, 11:58. Показов 8841. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана квадратная матрица. Сформировать одномерный массив, состоящий из
элементов, расположенных ниже главной диагонали матрицы. Выполнить
сортировку одномерного массива. Вывести матрицу, одномерный массив до
сортировки, одномерный массив после сортировки.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2015, 11:58
Ответы с готовыми решениями:

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

Сформировать одномерный массив, состоящий из элементов, расположенных ниже главной диагонали матрицы
Спасайте 1. Дана квадратная матрица. Сформировать одномерный массив, состоящий из элементов, расположенных ниже главной диагонали...

Сформировать одномерный массив, состоящий из элементов, расположенных ниже главной диагонали матрицы
Дана квадратная матрица. Сформировать одномерный массив, состоящий из элементов, расположенных ниже главной диагонали матрицы. Выполнить...

8
 Аватар для MicM
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
11.03.2015, 13:23
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/random/random_device.hpp>
#include <boost/random/uniform_int_distribution.hpp>
#include <boost/numeric/ublas/io.hpp>
 
namespace ublas = boost::numeric::ublas;
namespace rnd = boost::random;
 
void fill_matrix (ublas::matrix<int> & A)
{
    rnd::random_device rng;
    rnd::uniform_int_distribution<> gen (1, 20);
    for (int i = 0; i < A.size1(); i++)
        for (int j = 0; j < A.size2(); j++)
            A(i,j) = gen (rng);
}
 
void print_array (std::vector<int> & obj)
{
    for (int i = 0; i < obj.size(); i++)
        std::cout <<obj[i] <<' ';
    std::cout <<std::endl;
}
 
int main()
{
    int n = 4;
    ublas::matrix<int> A (n, n);
    fill_matrix (A);
    std::cout <<A <<std::endl;
    std::vector<int> v;
    for (int i = 1; i < A.size1(); i++)
        for (int j = 0; j < i; j++)
            v.push_back (A(i,j));
    print_array(v);
    std::sort (v.begin(), v.end());
    print_array(v);
}
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
14.03.2015, 17:58  [ТС]
Спасибо большое

Добавлено через 32 минуты
Только у меня нету этих библиотек

Добавлено через 27 секунд
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/random/random_device.hpp>
#include <boost/random/uniform_int_distribution.hpp>
#include <boost/numeric/ublas/io.hpp>
0
 Аватар для Kant
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
14.03.2015, 19:11
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
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
    const int SIZE = 4;
    int matrix[SIZE][SIZE] = {
        {1,2,3,4},
        {5,6,7,8},
        {9,10,11,12},
        {13,14,15,16}
    };
 
    int sum = 0;
    for(int i=0;i<SIZE;++i) {
        for(int j=0;j<SIZE;++j) {
            if(i == j) break;
            else sum += matrix[i][j];
        }
    }
 
    cout << sum << endl;
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 13:06  [ТС]
В Данном случаем выводит сумму,а нужен массив
0
 Аватар для Kant
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
15.03.2015, 14:25
Ага, что-то передернуло. А самому исправить никак?
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
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
    const int SIZE = 4;
    int matrix[SIZE][SIZE] = {
        {1,2,3,4},
        {5,6,7,8},
        {9,10,11,12},
        {13,14,15,16}
    };
 
    const int dd = ((SIZE*SIZE)-SIZE)/2;
    int down_diagonal[dd];
    int z = 0;
    for(int i=0;i<SIZE;++i)
        for(int j=0;j<SIZE;++j)
            if(i == j) break;
            else down_diagonal[z++] = matrix[i][j];
 
    for(int i=0;i<dd;++i)
        cout << down_diagonal[i] << " ";
 
    return 0;
}
0
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 14:52  [ТС]
вот я сделал 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
#include <iostream>
#include <ctime>
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL,"RUS");
    srand(time(NULL));
   int n,m,**array;
   cout<<"Введите колчество cтолбцов = ";
   cin>>n;
   cout<<"Введите колчество строк = ";
   cin>>m;
   cout<<"\t Матрица = \n";
 
   array = new int*[n];
 
   for (int i=0;i<n;i++)
      array[i]= new int[m];
   for (int i=0;i<n;i++)
      for (int l=0;l<m;l++)
         array[i][l]=rand()%10-7;
   for (int i=0;i<n;i++)
   {
       for (int l=0;l<m;l++)
           cout<<array[i][l]<<"\t";
       cout<<endl;
   }
   for (int i=0;i<n;i++)
      delete [] array[i];
   system("pause");
   return 0;
}
0
 Аватар для Kant
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
15.03.2015, 17:36
Лучший ответ Сообщение было отмечено Xitomi3 как решение

Решение

Ты перепутал столбцы и строки, не удалил память под массив указателей.
Цитата Сообщение от Xitomi3 Посмотреть сообщение
вот я сделал 2 массив, а как из него вывеси одномерный массив состоящий из нижней части главной диагонали,что-то я не понимаю
Я же тебе скинул пример с автоматическими массивами. Выделяешь память под одномерный массив и в него копируешь значения.

Добавлено через 22 минуты
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
#include <iostream>
#include<time.h>
#include<stdlib.h>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL,"RUS");
    srand(time(NULL));
    int columns = 0;
    cout<<"Введите количество cтолбцов = ";
    cin>>columns;
 
    int lines = 0;
    cout<<"Введите количество строк = ";
    cin>>lines;
    cout<<"\t Матрица = \n";
 
 
    int **array = new int*[lines];
    for (int i=0;i<lines;i++)
        array[i]= new int[columns];
 
 
    for (int i=0;i<lines;i++)
        for (int j=0;j<columns;j++)
            array[i][j]=rand()%10;
 
 
    for (int i=0;i<lines;i++) {
        for (int l=0;l<columns;l++) {
            cout<< array[i][l]<<"\t";
        }
        cout<<endl;
 
    }
 
    int size = lines*lines;
    const int dd = ((size)-lines)/2;
    int *down_diagonal = new int[dd];
 
    int z = 0;
    for(int i=0;i<lines;++i)
        for(int j=0;j<columns;++j)
            if(i == j) break;
            else down_diagonal[z++] = array[i][j];
 
 
    for(int i=0;i<dd;++i)
        cout << down_diagonal[i] << " ";
 
 
    for (int i=0;i<lines;i++)
        delete [] array[i];
    delete[] array;
 
    delete[] down_diagonal;
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 19:37  [ТС]
Спасибо большое) всё отлично работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2015, 19:37
Помогаю со студенческими работами здесь

Сформировать массив из элементов, расположенных ниже главной диагонали матрицы
Дана квадратная матрица. Сформировать одномерный массив, состоящий из элементов, расположенных ниже главной диагонали матрицы. Выполнить...

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

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

Сформировать одномерный массив из элементов матрицы ниже главной диагонали и которые больше элементов выше
Дана квадратная матрица A n x n. Сформировать одномерный массив, состоящий из тех элементов матрицы A, которые расположены ниже главной ...

Матрица, подпрограммы. сформировать одномерный массив В, состоящий из элементов побочной диагонали матрицы А
Из заданной матрицы А(5х5), элементы которой формируются как массив случайных чисел, сформировать одномерный массив В, состоящий из...


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

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

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru