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

Присвоить вектору значения сумм строк матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Chaow
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 15
08.08.2013, 12:57     Присвоить вектору значения сумм строк матрицы #1
Всем привет, есть такое задание: Обязательно использовать динамическую память. По заданной матрице составить вектор, элементы которого равны суммам элементов соответствующей строки.
Матрицу с выделение дп под нее я сделал, подскажите пожалуста, как привязать к вектору суммы строк?
Вот код (на мои вычисления с вектором не обращайте внимания):
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
#include <conio.h>
#include <iostream>
#include <vector>
#include <math.h>
#include <ctime> // в ней функция time
 
using namespace std;
 
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел. 
    int n = 0; 
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консоль
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
        {
            vector<int> v(n);
            for (int i=0; i<n; i++) v[i]=i+1;
            for (int i=0; i<n; i++) cout<<v[i]<<" ";
        }
    }
    // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]a[i]; // Удаляем каждый элемент
    }
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 12:57     Присвоить вектору значения сумм строк матрицы
Посмотрите здесь:

Для каждой матрицы вычислить сумму элементов строк и определить наименьшее значение этих сумм и номер соответствующей строки C++
Матрицы: нахождение сумм положительных элементов строк каждой матрицы C++
C++ Отсортировать квадратную матрицу по неубыванию сумм строк
Упорядочить строки матрицы по убыванию сумм элементов строк C++
Найти суммы элементов тех строк матрицы, максимальные элементы которых не превышают среднего значения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
08.08.2013, 17:11     Присвоить вектору значения сумм строк матрицы #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
42
43
44
45
46
#include <conio.h>
#include <iostream>
#include <vector>
#include <ctime> 
 
using namespace std;
 
int main()
{
    srand(time(NULL)); // Инициализируем генератор случайных чисел. 
    int n = 0; 
    cin >> n; // Считываем с клавиатуры n
    int **a = new int* [n]; // Создаем массив указателей
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [n]; // Создаем элементы
    }
    // А дальше работа как с обычным массивом. 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            a[i][j] = rand() % 10; // Каждый элемент случайному числу от 0 до 9
            cout << a[i][j] << " "; // Вывести элементы на консоль
        }
        cout << endl; // Двумерный массив. Строка кончилась, переводим строку и на консоли
     }
     vector<int> v;//лучше писать без размера. Если он будет пустой то он будет забит нулями по умолчанию.
     for (int i = 0; i < n; i++)
    {
        int sum(0);
        for (int j = 0; j < n; j++)
             sum += a[i][j];// сумма элементов в каждой строке
             v.push_back(sum);// заносим значение в контейнер      
     }
      cout<<"\n";
      for ( int i = 0;  i < v.size() ; i++ )
            cout<<v[i]<<" ";
      cout<<"\n";
    // Удаление массива
    for (int i = 0; i < n; i++)
    {
        delete[]a[i]; // Удаляем каждый элемент
    }
    getch();
}
fogfog
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 22
02.10.2013, 14:18     Присвоить вектору значения сумм строк матрицы #3
а можно переделать так что бы было не "элементы которого равны суммам элементов соответствующей строки" а элементы которого равны произведениям соответствующей строки?
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.10.2013, 14:28     Присвоить вектору значения сумм строк матрицы #4
Цитата Сообщение от fogfog Посмотреть сообщение
а можно переделать так что бы было не "элементы которого равны суммам элементов соответствующей строки" а элементы которого равны произведениям соответствующей строки?
а ты в программу вообще не вникал что ли? Просто скопипастил? Ну и на что ты тогда время теряешь? Ты не научишься ничему!

Добавлено через 4 минуты
Leshak, а зачем мешать в программе вектор на основе STL и матрицу, выделенную вручную через new?
Не легче задать матрицу так?
C++
1
vector<vector<int>> a;
Кроме того, если размер v известен, рекомендуется перед циклом пушбеков поставить
C++
1
v.reserve(n);
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
02.10.2013, 17:34     Присвоить вектору значения сумм строк матрицы #5
Leshak, а зачем мешать в программе вектор на основе STL и матрицу, выделенную вручную через new?
Не легче задать матрицу так?
Легче, кто бы спорил =)
Просто загвоздка в том, что ему надо было именно так. Мол. преподаватель захотел (с)
Я честно говоря делал на автомате. Потом спросил: а понимает ли он сам, то что написано выше. Ответ был такого рода:
Программа собрана копипастом, с разных тем )
Yandex
Объявления
02.10.2013, 17:34     Присвоить вектору значения сумм строк матрицы
Ответ Создать тему
Опции темы

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