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

Упорядочить по возрастанию элементы каждого столбца матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Dronchik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 3
18.06.2012, 12:50     Упорядочить по возрастанию элементы каждого столбца матрицы #1
Упорядочить по возрастанию элементы каждого столбца матрицы размером n*m.Найти сумму положительных элементов и количество отрицательных элементов.


Всем кто поможет буду очень благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 12:50     Упорядочить по возрастанию элементы каждого столбца матрицы
Посмотрите здесь:

Упорядочить по возрастанию элементы каждого столбца матрицы C++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания C++
C++ Расположить элементы каждого столбца матрицы Х по возрастанию значения
расположить элементы каждого столбца заданной матрицы по возрастанию значений C++
C++ расположить элементы каждого столбца заданной матрицы по возрастанию значений на С++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания. C++
C++ Выполнить упорядочивание каждого столбца матрицы по возрастанию
Упорядочить все элементы матрицы таким образом, чтобы при чтении матрицы по строкам ее элементы образовывали отсортированный по возрастанию массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
enk
 Аватар для enk
45 / 44 / 7
Регистрация: 16.06.2012
Сообщений: 177
19.06.2012, 03:10     Упорядочить по возрастанию элементы каждого столбца матрицы #2
1. Сортировка столбца матрицы = сортировка массива.
2. Чтобы найти сумму, создай матрицу (напр. int mArr[n][m]) и в цикле проходись:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int sum = 0, negative = 0;
for (int i = 0; i < n; i++)
{
if (mArr[i] > 0)
{
sum += mArr[i];
}
if (mArr[i] < 0)
{
negative++;
}
}
В переменной sum будет содержаться сумма положительных элементов, в negative кол-во отрицательных.

Добавлено через 13 часов 37 минут
Я перечитал первый пост, тебе нужно находить сумму и кол-во отрицательных чисел в столбце или всей матрицы?
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
19.06.2012, 05:23     Упорядочить по возрастанию элементы каждого столбца матрицы #3
Хе-хе. Попробуем гланды через... Eigen!
Ну надо же на чём-то опробовать
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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <Eigen/Core>
 
int main()
{
    srand(time(NULL));
 
    int n = 3;
    int m = 5;
    Eigen::ArrayXXi arr(n, m);
    arr = Eigen::ArrayXXi::Random(n, m) / (RAND_MAX/100);
 
    std::vector<int> v(3);
    Eigen::Map<Eigen::ArrayXi> mapped_vec(&v[0], v.size());
    
    std::cout << "Unsorted array:" << std::endl << arr << std::endl;
 
    for (int i = 0; i < arr.cols(); ++i)
    {
        mapped_vec = arr.col(i);
        std::sort(v.begin(), v.end());
        arr.col(i) = mapped_vec;
    }
 
    std::cout << "Sorted array:" << std::endl << arr << std::endl;
 
    std::cout << "Sum of positive: " << ((arr > 0).cast<int>()*arr).sum() << std::endl;
    std::cout << "Number of negative: " << (arr < 0).count() << std::endl;
    
    return 0;
}
Жутковатенько, конечно. Ну да ладно
Yandex
Объявления
19.06.2012, 05:23     Упорядочить по возрастанию элементы каждого столбца матрицы
Ответ Создать тему
Опции темы

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