Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
#1

Сформировать вектор из элементов диагонали матрицы - C++

07.09.2014, 14:40. Просмотров 725. Ответов 6
Метки нет (Все метки)

Помогите, пожалуйста, Определить произведение элементов матрицы A(MxN), лежащих на главной диагонали и сформировать из них вектор С.
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
#include "iostream"
#include "math.h"
#include "iomanip"
 
using namespace std;
 
void sp(double**, int, int, int*);
 
int main()
{
locale::global(locale("Russian"));
double **a;
int i, j, n, m,s;
 
cout << "Введите размер матрицы А:\n";
cout << "Рядов n=";
cin >> n ;
cout << "Колонок m=";
cin >> m;
a = new double*[n]; 
for(i=0; i<n; i++) 
a[i] = new double[m]; 
cout << "\nВведите элементы массива A:\n"; 
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
cout << "Введите a[" << i << "][" << j << "]: ";
cin >> a[i][j];
}
cout << "\nМассив A:\n";
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
cout << setw (9) << a[i][j];
cout << endl;
}
 
sp (a, n, m, &s);
 
cout<<"\nПроизвидение элементов на главной диагонале \nматрицы = "<<s;
 
for(i=0; i<n; i++) 
delete [] a[i];
delete []a;
a = NULL;
cin>>n;
return 0;
 
}
void sp (double **a,int n,int m,int *s)
{
    int i, j;
    *s=1;
    for (i = 0; i < min(n, m); i++) {  //n - количество строк, m - количество столбцов.
    *s*= a[i][i];
}
}
Добавлено через 17 часов 2 минуты
ап1
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2014, 14:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать вектор из элементов диагонали матрицы (C++):

Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля - C++
Даны три квадратные матрицы. Сформировать вектор, состоящий из минимальных элементов каждой матрицы, отличных от нуля. Поиск минимального...

Из элементов матрицы сформировать вектор средних арифметических парных элементов - C++
Это что вообще сделать надо. Не надо писать код, просто объясните суть..

Сформировать вектор из четных элементов матрицы - C++
1. 2.Сформировать Вектор Т из четных элементов матрицы P(k,l). Найти в нем максимальный элемент. 3.с оператором цикла while

Сформировать вектор из диагональных элементов матрицы - C++
&quot;Для заданной матрицы(N на M) сформировать вектор из её диагональных элементов. Добавить элементы вектора к элементам K-ой строки.&quot; ...

Сформировать вектор d из крупнейших отрицательных элементов соответствующих столбцов матрицы - C++
Сформировать вектор d из крупнейших отрицательных элементов соответствующих столбцов матрицы s .

Сформировать вектор из наименьших значений элементов строк данной матрицы - C++
Сформировать вектор из наименьших значений элементов строк данной матрицы и найти их среднее арифметическое

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
08.09.2014, 16:16  [ТС] #2
fg2
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,961
Записей в блоге: 27
08.09.2014, 16:20 #3
О, ужас. Ану-ка, скажите, какое свойство у индексов элементов главной диагонали матрицы?

Добавлено через 2 минуты
з.ы. код даже не смотрела. Отвечаю чисто на Ваш вопрос.
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
08.09.2014, 18:17  [ТС] #4
И все же не могу понять, как сформировать вектор из элементов матрицы.
zss
Модератор
Эксперт С++
6358 / 5922 / 1919
Регистрация: 18.12.2011
Сообщений: 15,218
Завершенные тесты: 1
08.09.2014, 18:36 #5
Цитата Сообщение от dkii Посмотреть сообщение
вектор из элементов матрицы
По контексту следует, что из элементов диагонали:
C++
1
2
3
4
5
6
int size=min(m,n);
double b=new double[size];
for (i = 0; i < size; i++)
    b[i]=a[i][i];
...
delete[] b;
dkii
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 101
08.09.2014, 20:18  [ТС] #6
Ошибку выдает
cannot convert from 'double *' to 'double'
SpringBear
0 / 0 / 1
Регистрация: 07.09.2014
Сообщений: 6
09.09.2014, 01:11 #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
69
70
71
72
73
74
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int **allocMatrix(int rows, int cols)
{
    int **matrix = new int*[rows];
    for (int i = 0; i < rows; i++) {
        matrix[i] = new int[cols];
    }
    return matrix;
}
 
void generateMatrix(int **matrix, int rows, int cols)
{
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            matrix[i][j] = rand() % 20;
        }
    }
}
 
void printMatrix(int **matrix, int rows, int cols)
{
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            std::cout << std::setw(3) << matrix[i][j];
        }
        std::cout << std::endl;
    }
    std::cout << std::endl;
}
 
int gettingElementsFromDiag(int **matrix, int *array, int rows)
{
    int op = 1;
    for (int i = 0; i < rows; i++) {
        op *= matrix[i][i];
        array[i] = matrix[i][i];
    }
    return op;
}
 
void printArray(int *array, int rows)
{
    for (int i = 0; i < rows; i++) {
        std::cout << std::setw(3) << array[i];
    }
    std::cout << std::endl;
}
 
void deallocMatrix(int **matrix, int rows)
{
    for (int i = 0; i < rows; i++)
        delete [] matrix[i];
    delete [] matrix;
}
 
int main()
{
    int rows, cols;
    std::cout << "Enter rows and cols" << std::endl;
    std::cin >> rows >> cols;
    int **matrix = allocMatrix(rows, cols);
    generateMatrix(matrix, rows, cols);
    printMatrix(matrix, rows, cols);
    int *array = new int[rows];
    int op = gettingElementsFromDiag(matrix, array, rows);
    std::cout << "Op = " << op << std::endl;
    printArray(array, rows);
    delete [] array;
    return 0;
}
Добавлено через 12 минут
Забыл дописать "deallocMatrix(matrix, rows)" перед "delete [] array;".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2014, 01:11
Привет! Вот еще темы с ответами:

Сложить модули элементов строк матрицы и сформировать из них вектор V - C++
Помогите, пожалуйста: дана матрица А размера n на n. Нужно сформировать вектор V, элементами которого являются суммы модулей элементов...

Сформировать вектор, состоящий из максимальных элементов каждого столбца (строки) матрицы - C++
Всем привет! Помогите пожалуйста мне написать вот такую программу: Данная прямоугольная матрица. Сформировать вектор, состоящий из...

Сформировать вектор, элементами которого являются соответствующие суммы элементов матрицы - C++
вот задание: Написать программу, которая формирует вектор размером 4, элементами которого являются соответствующие суммы элементов...

Сформировать вектор из сумм элементов строк матрицы и найти их среднее геомтрическое - C++
Добрый вечер!!! Помогите пожалуйста с написанием программы на С++. Сама не понимаю в программировании а для курсача нужно! Пожалуйста!!! ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.09.2014, 01:11
Ответ Создать тему
Опции темы

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