Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
den111
0 / 0 / 1
Регистрация: 30.11.2014
Сообщений: 14
#1

Задана матрица размером N*N и вектор размерности N - C++

15.03.2015, 14:34. Просмотров 900. Ответов 5
Метки нет (Все метки)

Задана матрица размером N*N и вектор размерности 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
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
    int n, m;
    srand(time(NULL));
 
    cout << "kolvo ctrok: ";
    cin >> n;
 
    cout << "kolvo stolbcov: ";
    cin >> m;
 
    int **Matrix = new int *[n];
    cout << "vvedite elementu matricu\n";
    for(int i = 0; i < n; i++)
    {
        Matrix[i] = new int [m];
        for(int j = 0; j < m; j++)
        {
            cout << "Matrix[" << i +  1<< "][" << j + 1 << "] = "; 
            cin >> Matrix[i][j];
        }
    }
 
    cout << "izvestnay matrica:" << endl;
    for(int i  =0; i < n; i++)
    {
        cout << endl;
        for(int j = 0; j < m; j++)
            cout << Matrix[i][j] << "\t";
    }
    cout << endl;
 
    cout << "\nvector:";
    int *vector = new int [n];
    for(int i = 0; i < n; i++)
    {
        vector[i] = rand() % 20;
        cout << vector[i] << " ";
    }
 
    for(int j = 1; j < m; j += 2)
        for(int i = 0; i < n; i++)
            Matrix[i][j] = vector[i];
            
    cout << "preobrazovvannaz matrica:" << endl;
    for(int i  =0; i < n; i++)
    {
        cout << endl;
        for(int j = 0; j < m; j++)
            cout << Matrix[i][j] << "\t";
    }
    cout << endl;
    
    for (int i = 0; i < n; i++)
        delete [] Matrix[i];
    delete [] Matrix;
    delete [] vector;
 
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2015, 14:34
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задана матрица размером N*N и вектор размерности N (C++):

Задана матрица {aij} размерности N*N. Из ее элементов сформировать одномерный массив
Пожалуйста помогите сделать эти задачи: 1. Задана матрица {aij} размерности...

Задана матрица размером NxM. Найти k - количество
Задана матрица размером NxM.Найти k - количество особых элементов...

Задана матрица размером М х N. Найти максимальный по модулю эле¬мент матрицы
Задана матрица размером М х N. Найти максимальный по модулю эле¬мент матрицы. ...

Задана матрица размером NxM. Найти сумму всех элементов, расположенных выше строки с максимальным элементом
Задана матрица размером NxM. Найти сумму всех элементов, расположенных выше...

Задана символьная матрица размером NxM.Определить кол-во различных элементов(Повторяющиеся считать только 1 раз).
Помогите пожалуйста . Не могу создать динамческий символьный массив. Остальную...

Дана матрица размером МхN. Сформировать из этой матрицы вектор по правилу
Как решить эту программу с помощью указателей? Задача Дано матрицу размером...

5
Leon_AD
103 / 103 / 51
Регистрация: 11.04.2014
Сообщений: 160
15.03.2015, 16:01 #2
Вы уже определитесь какая у Вас матрица. А то в задании n*n, а в программе n*m.
Если в строке 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
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
#include <iostream>
#include <random>
#include <time.h>
 
using namespace std;
int main()
{
    int n;
    srand(time(NULL));
 
    cout << "Enter n: ";
    cin >> n;
 
    int **Matrix = new int *[n];   
    for(int i = 0; i < n; i++)
        Matrix[i] = new int [n];
    cout << "vvedite "<<n*n<< " elementov matricu\n";
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            cin >> Matrix[i][j];
    
    cout << "izvestnay matrica:" << endl;
    for(int i  =0; i < n; i++)
    {
        cout << endl;
        for(int j = 0; j < n; j++)
            cout << Matrix[i][j] << "\t";
    }
    cout << endl;
 
    cout << "\nvector:";
    int *vector = new int [n];
    for(int i = 0; i < n; i++)
    {
        vector[i] = rand() % 20;
        cout << vector[i] << " ";
    }
    cout << endl;
 
    for(int i = 0; i < n; i++)
        if(i%2==0) 
            for(int j(0);j<n;j++)
                Matrix[i][j] = vector[j];
            
            
    cout << "preobrazovvannaz matrica:" << endl;
    for(int i  =0; i < n; i++)
    {
        cout << endl;
        for(int j = 0; j < n; j++)
            cout << Matrix[i][j] << "\t";
    }
    cout << endl;
    
    for (int i = 0; i < n; i++)
        delete [] Matrix[i];
    delete [] Matrix;
    delete [] vector;
 
    system("pause");
    return 0;
}
И ещё. В С++ нумерации индексов идёт с 0. Поэтому ищем наоборот четные строки
C++
1
if(i%2==0)
0
den111
0 / 0 / 1
Регистрация: 30.11.2014
Сообщений: 14
15.03.2015, 18:06  [ТС] #3
Leon_AD, Да вы правильно заметили у меня был такой недочет. Спасибо за исправленную программу, но она не заменяет нечетные строки, она просто заменяет первую строку
0
Leon_AD
103 / 103 / 51
Регистрация: 11.04.2014
Сообщений: 160
15.03.2015, 18:51 #4
Не знаю, как у Вас. У меня всё работает.
Задана матрица размером N*N и вектор размерности N
1
den111
0 / 0 / 1
Регистрация: 30.11.2014
Сообщений: 14
15.03.2015, 19:23  [ТС] #5
Leon_AD, Извините я перепутал, все работает отлично, спасибо вам большое, очень помогли
0
MicM
824 / 483 / 324
Регистрация: 29.12.2009
Сообщений: 1,106
Завершенные тесты: 1
15.03.2015, 19:23 #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
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <random>
#include <vector>
#include <algorithm>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
 
using std::cout;
using std::endl;
namespace ublas = boost::numeric::ublas;
 
int main()
{
    int N = 4;
    ublas::matrix<int> A (N, N);
    std::vector<int> V (N);
 
    std::random_device rng;
    std::uniform_int_distribution<> gen (1, 9);
    for (int i = 0; i < A.size1(); i++)
    {
        V[i] = gen (rng);
        for (int j = 0; j < A.size2(); j++)
        {
            A(i,j) = gen (rng);
        }
    }
    cout <<A <<endl;
    for (auto i : V)
        cout <<i <<' ';
 
    for (int i = 1; i < A.size1(); i+=2)
        std::copy (V.begin(), V.end(), A.begin2() + A.size2() * i);
    cout <<endl <<A <<endl;
}
0
15.03.2015, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2015, 19:23
Привет! Вот еще темы с решениями:

Задана матрица размером NxM. Определить количество "особых" элементов матрицы
Помогите написать программу. Задана матрица размером NxM. Определить...

Задана прямоугольная матрица А. Построить вектор В, элементы которого равны разностям наибольших и наименьших значений элементов строк
Задана прямоугольная матрица А. Построить вектор В, элементы которого равны...

Работа с многомерными массивами. Дана матрица размером М * N. Сформировать из этой матрицы вектор по правилу
Дано матрицу размером М * N. Сформировать из этой матрицы вектор по правилу:...

Дана матрица А размером 5х4и вектор столбец,состоящий из пяти элементов. Объеденить их по столбцу в матрицу ра
Дана матрица А размером 5х4и вектор столбец,состоящий из пяти элементов....


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

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

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