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

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

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

Дана квадратная матрица. Сформировать одномерный массив, состоящий из
элементов, расположенных ниже главной диагонали матрицы. Выполнить
сортировку одномерного массива. Вывести матрицу, одномерный массив до
сортировки, одномерный массив после сортировки.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2015, 11:58
Ответы с готовыми решениями:

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

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

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

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

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

8
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
11.03.2015, 13:23 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
#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
Xitomi3
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
14.03.2015, 17:58  [ТС] 3
Спасибо большое

Добавлено через 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
33 / 33 / 18
Регистрация: 15.05.2013
Сообщений: 236
14.03.2015, 19:11 4
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
Xitomi3
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 13:06  [ТС] 5
В Данном случаем выводит сумму,а нужен массив
0
Kant
33 / 33 / 18
Регистрация: 15.05.2013
Сообщений: 236
15.03.2015, 14:25 6
Ага, что-то передернуло. А самому исправить никак?
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
Xitomi3
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 14:52  [ТС] 7
вот я сделал 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
33 / 33 / 18
Регистрация: 15.05.2013
Сообщений: 236
15.03.2015, 17:36 8
Лучший ответ Сообщение было отмечено 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
Xitomi3
0 / 0 / 0
Регистрация: 01.11.2014
Сообщений: 62
15.03.2015, 19:37  [ТС] 9
Спасибо большое) всё отлично работает
0
15.03.2015, 19:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2015, 19:37

Найти количество положительных элементов расположенных ниже главной диагонали матрицы
Найти количество положительных элементов расположенных ниже главной диагонали...

Найти сумму всех элементов матрицы, расположенных ниже главной диагонали
Дан массив A(n,n) найти сумму всех его элементов, расположенных ниже главной...

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


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

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

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