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

Числовой массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача по С++ работа с массивом http://www.cyberforum.ru/cpp-beginners/thread418325.html
Таблица футбольного чемпионата, в которой приняли участие 20 команд, задана двумерным массивом из одинакового количества строк и столбцов, в котором все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали равен 3, 1, 0(числу очков набранных в игре: 3-выигрыш, 1- ничья, 0-проигрыш) Название каждой команды известно. а) Определить название...
C++ расширить файл расширить файл BIBL.MY двумя новыми компонентами, для чего написать функцию с именем Korr. http://www.cyberforum.ru/cpp-beginners/thread418324.html
C++ Почему портится поток cin при использовании функции getline
char a; cin.getline(a,5); cin.clear(); При вводе свыше 5 символов после функции getline надо вызывать функцию clear() иначе поток cin не работает, почему так происходит? Пишу в VS2010
C++ Генератор случайных чисел...
На экран выведено 9 прямоугольников одинакового цвета, которые имитируют карточки с нарисованными на них числами от 1 до 9 (число находится на невидимой стороне карточки). Нажатие клавиши (точнее клик мыши) приводит к выводу этого числа в прямоугольнике, в пределах которого находится курсор. Числа располагаются случайным образом. Плиз помогите, заранее спасибо и если можно с комментариями...
C++ Помогите написать программу для этих задач на С http://www.cyberforum.ru/cpp-beginners/thread418310.html
1)В массиве A=(a 1, а 2, ..., а n) удалить все элементы, стоящие между мини- мальным положительным и максимальным отрицательным элементами. 2)Дана матрица A(nЧn), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей. 3)Даны вершины треугольников ABC u MHP .Вычислить...
C++ помогите пожалуйста решить сложные задачи на C Задача 46 Составить обычную и рекурсивную функции для нахождения наибольшего общего делителя двух чисел. Сравнить время работы обеих функций. Задача 45 Используя алгоритм, определить, сколько раз в 21 веке Новый год приходится на понедельник. Алгоритм, определяющий по дате (т.е. числу, месяцу и году) день недели, имеет следующий вид: 1) Разложить год на две части N1 и N2: N1-... подробнее

Показать сообщение отдельно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.12.2011, 21:57     Числовой массив
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <vector>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <numeric>
 
int main()
{
    std::vector<int> v;
    int x;
    while(std::cin >> x)
        v.push_back(x);
    std::cout << std::accumulate(v.begin(), v.end(), 0, [](int init, int num) { return ((num > 0) ? (init + num) : (init)); }) << std::endl;
    std::cout << std::accumulate(v.begin(), v.end(), 0, [](int init, int num) { return ((num < 0) ? (init + num) : (init)); }) << std::endl;
    std::sort(v.begin(), v.end(), std::less<int>());
    for(auto &it: v)
        std::cout << std::setw(5) << it;
    std::cout << std::endl;
    return 0;
}
Без C++0x
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <vector>
#include <iostream>
#include <algorithm>
#include <numeric>
#include <iterator>
 
template <class T>T accPositive(T init, T num) { return ((num > 0) ? (init + num) : (init)); }
 
template <class T>T accNegative(T init, T num) { return ((num < 0) ? (init + num) : (init)); }
 
int main()
{
    std::vector<int> v;
    int x;
    while(std::cin >> x)
        v.push_back(x);
    std::cout << std::accumulate(v.begin(), v.end(), 0, accPositive<int>) << std::endl;
    std::cout << std::accumulate(v.begin(), v.end(), 0, accNegative<int>) << std::endl;
    std::sort(v.begin(), v.end(), std::less<int>());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
 
Текущее время: 15:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru