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

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

Войти
Регистрация
Восстановить пароль
 
Алексей5
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 5
#1

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

15.03.2009, 18:18. Просмотров 577. Ответов 2
Метки нет (Все метки)

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

Размер матрицы вводится пользователем с клавиатуры, то есть m и n не константы. Вот что у меня получилось:
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.h>
#include <conio.h>
#include <stdlib.h>
void main ()
{clrscr;
randomize ();
int i,j, m,n,d;
float **matr,**mas;
matr=new float *[n];
matr=new float *[m];
cout << "\n Vvedite chislo strok n="; cin>>n;
cout << "\n Vvedite chislo stolbcov m="; cin>>m;
for (i=0;i<n;i++)
for (j=0; j<m; j++)
matr[i][j]=random (100);
for (i=0;i<n;i++)
{
for (j=0; j<m; j++)
cout<<matr[i][j]<<"\t";
cout<<"\n";
}
 delete matr[i];
delete matr[j] ;
delete [] matr;
}
Осталась вторая часть программы. Подскажите как это организовать.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2009, 18:18     Сформировать вектор из диагональных элементов матрицы
Посмотрите здесь:

Сформировать вектор, состоящий из максимальных элементов каждого столбца (строки) матрицы C++
Сформировать вектор из наименьших значений элементов строк данной матрицы C++
C++ Сформировать вектор, состоящий из максимальных элементов каждого столбца (строки) матрицы
Сформировать вектор d из крупнейших отрицательных элементов соответствующих столбцов матрицы C++
Сформировать вектор из элементов диагонали матрицы C++
Сложить модули элементов строк матрицы и сформировать из них вектор V C++
C++ Сформировать вектор из сумм элементов строк матрицы и найти их среднее геомтрическое
Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов C++
C++ Сформировать вектор, элементы которого представляют собой сумму заданных элементов матрицы
Сформировать вектор B, компонентами которого является сумма положительных элементов строк матрицы А C++
Из элементов матрицы сформировать вектор средних арифметических парных элементов C++
C++ Сформировать вектор из четных элементов матрицы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
15.03.2009, 19:00     Сформировать вектор из диагональных элементов матрицы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
это не правильно
C++
1
2
3
4
int i,j, m,n,d;
float **matr,**mas;
matr=new float *[n];//чему равно n?
matr=new float *[m];//чему равно m?
вот код для примера
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
#include <iostream>
 
using namespace std;
 
int **arrCreate(const int row,const int col)
{
    if((row > 0))
    {
        int **arr = new int*[row];
        for(int i = 0; i < row; ++i)
        {
            arr[i] = new int[col];
        }
        return arr;
    }
    else
        return 0;
}
void arrFree(int **arr /*const int lenrow*/)
{
    if(arr != 0)
    {
        int lenrow = static_cast<int>(_msize(arr)/sizeof(int));
        for(int i = 0; i < lenrow; ++i)
            delete[] arr[i];
        delete[] arr;
    }
}
void arrInput(int **arr,const int row, const int col)
{
    if(arr != 0)
    {
        for(int i = 0; i < row; ++i)
        {
            for(int j = 0; j < col; ++j)
            {
                cout<<"arr["<<i<<"]"<<"["<<j<<"] = ";
                cin>>arr[i][j];
            }
 
        }
    }
}
void arrOut(int **arr, const int row, const int col)
{
    if(arr != 0)
    {
        for(int i = 0; i < row; ++i)
        {
            cout<<"[ ";
            for(int j = 0; j < col; ++j)
                cout<<arr[i][j]<<" ";
            cout<<"]"<<endl;
        }
    }
}
 
int main()
{
    int row;
    int col;
    cin>>row;
    cin>>col;
    int **arr = arrCreate(row,col);
 
    arrInput(arr,row,col);
 
    arrOut(arr,row,col);
 
    arrFree(arr);
    return 0;
}
Алексей5
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 5
15.03.2009, 20:32  [ТС]     Сформировать вектор из диагональных элементов матрицы #3
Так с этим мы разобрались а как со второй частью задачи быть? Подскажите

Добавлено через 4 минуты 5 секунд
А можно вот так?(ввод матрицы)
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
#include <iostream.h>
void main()
{
int n, m, k;
cout<<"\n Vvedute koluchestvo strok: ";
cin>>n;
cout<<"\n Vvedute koluchestvo stolbLLov: ";
cin>>m;
cout<<"\n Znachenue NULL stolbLLov ne zapalnuaet";
cout<<"\n wedute nomer stolbra:";
//cout<<"\n Znachenue NULL stolbLLov ne zapalnuaet";
cin>>k;
k--;
float**matr;
matr=new float*[n];
if (matr==NULL)
{
cout<<"He cozdan dunamucheskuu massuv!";
return;
}
for (int i=0;i<n;i++)
{
matr[i]=new float[n];
if (matr[i]==NULL)
{
cout<<"HE sozdan dunamucheskuu massuv!";
return;
}
for (int j=0;j<m;j++)
if (i!=j&&j!=k) matr[i][j]=0;
 
else
matr[i][j]=1;
}
for (i=0;i<n;i++)
{
cout<<"\n Stroka"<<(i+1)<<":";
for (int j=0;j<m;j++)
cout<<"\t"<<matr[i][j];
}
for (i=0;i<n;i++)
delete matr[i];
delete[]matr;
}
Добавлено через 30 минут 5 секунд
сформировать вектор из её диагональных элементов. Добавить элементы вектора к элементам K-ой строки. Как это сделать?
Yandex
Объявления
15.03.2009, 20:32     Сформировать вектор из диагональных элементов матрицы
Ответ Создать тему
Опции темы

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