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

Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выделить из строки s слов, начиная от слова с номером n http://www.cyberforum.ru/cpp-beginners/thread172382.html
Помогите пожалуйста: нужно выделить из строки s слов,начиная от слова с номером n. Входные параметры: s,n. Выходные параметры: нет.
C++ метод хорд помогите решить уравнение tg(0.4x+0.4)=x^2 методом хорд http://www.cyberforum.ru/cpp-beginners/thread172379.html
Подключить библ. bass.dll C++
Дорогие друзья, прошу помочь! И заранее всех откликнувшихся благодарю! Есть у меня библиотека для работы со звуком: и bass.h,и bass.lib,и bass.dll. Но как их прикрутить так проекту, что код ниже запахал. Пользуюсь Visual Studio 2008 и иногда Dex-C++. И ещё, когда я файлы добавляю к проекту (bass.h и bass.lib), компиляторы обоих IDE выбивают: NO SUCH FILE OR DIRECTORY Bass.h ...
база данных C++
Разработать программу для управления базой данных «Абоненты ГТС». Запись в базе данных содержит следующие поля: Ф.И.О. абонента, адрес, номер телефона, долг по оплате. Организовать возможности отсортировывать записи по возрастанию долга; по фамилии и адресу выдавать значение долга; распечатывать ведомости должников.
C++ Функции преобразования http://www.cyberforum.ru/cpp-beginners/thread172369.html
Hi all Вот первый код #include "stdafx.h" #include "conio.h" using namespace std; class String{ private: char* ptr; public: String(){
C++ Поиска максимального значения функции в заданном промежутке Дана функция y=2x3+1 Написать программу для поиска максимального значения y в промежутке x с шагом 0,2. Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем. подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
04.10.2010, 23:04     Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента
Позволю себе прокомментить код gooseim-а.

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 <cstdlib>
#include <algorithm>//Стандартные алгоритмы
#include <cmath>
#include <functional>//Функторы
#include <numeric> //Для accumulate
 
using namespace std;
 
bool find_less_mod(int val1, int val2)//Функция сравнения по модулю
{
    return abs(val1)<abs(val2);//Если модуль val1 меньше модуля val2 вернем 1, если нет - 0
}
 
int sum_mod(int val1, int val2)//Функция суммы по модулю
{
    return abs(val1)+abs(val2);//Возвращаем сумму модулей элементов
}
 
int main()
{
    const size_t n=6;//Размер
    int arr[n]{12, 2, -3, 15, -12, 4};
    size_t ind=min_element(arr, arr+n, find_less_mod)-arr;//Ищем минимальный по подулю элемент
//с помощью стандартного алгоритма min_element, после чего вычитаем из него адрес указателя
//на массив, получаем порядковый номер в массиве минимального по модулю элемента
    cout<<"Index of minimal element by modul: "<<ind<<endl;//Пишем это
    //Считаем сумму через accumulate. Первый параметр стандартный алгоритм find_if
//который ищет первый элемент меньше нуля, прибавляем к значению 1, получаем
//указатель на следующий за первым элементом больше нуля.
//От этого указателя до указателя на конец массива, складываем элементы массива функцией
//сумма по модулю.
    cout<<"Sum: "<<accumulate(find_if(arr, arr+n, bind2nd(less<int>(), 0))+1, arr+n, 0, sum_mod)<<endl;
    system("pause");
}
 
Текущее время: 21:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru