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

Вычислить сумму положительных элементов массива, стоящих на нечетных местах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Более скоростной ввод из файла http://www.cyberforum.ru/cpp-beginners/thread1085931.html
Доброго времени суток! В файле есть набор чисел (1 <= N <= 1018). N определена в начале файла. Вопрос - как быстрее (чем потоки) ввести эти числа в массив? И поместятся ли они в массиве... это проблема. Пожалуйста помогите, вопрос очень срочный. Заранее спасибо!
C++ Как изменить размер стека Доброго времени суток! Такой вопрос: как изменить размер стека в C++ или что использовать вместо... int arr; Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread1085929.html
Распространение игр на SDL C++
Всем доброго времени суток. В университет в качестве курсовой работы нужно написать игру. Впервые работаю с графикой (до этого все программы были консольные), решил использовать SDL, но возникла проблема. Почитав форумы узнал, что SDL - динамическая библиотека. Танцы с бубнами в попытках перекомпилировать ее в обычную .lib, что бы использовать конечный экзешник без .dll ни к чему не привели...
Вывести все элементы этой матрицы, отличающиеся от среднего значения всех элементов менее чем на 10% C++
Суть программы такова: С клавиатуры задается матрица размером 5 * 7. Вывести все элементы этой матрицы, отличающиеся от среднего значения всех элементов менее чем на 10% . Код программы который я написал: #include <iostream> #include <conio.h> using namespace std; void main() {
C++ Ошибка "Error C2017: недопустимая escape-последовательность" http://www.cyberforum.ru/cpp-beginners/thread1085922.html
#include <iostream> #include <math.h> using namespace std; double Z(double x); int main() { double h,x,S,y=0, A,B; int n=8; setlocale(LC_ALL,"Rus");
C++ Ошибка номер c2535 в адапторе bind2nd Доброго времени суток начал изучать STL и пытаюсь соответственно активно использовать в нижеприведенной программе компилятор выдал ошибку номер c2535 не знаю в чем проблема, если есть какие-нибудь идеи подскажите. #include "stdafx.h" #include <iostream> #include <vector> #include <string> #include <algorithm> #include <iterator> using namespace std; подробнее

Показать сообщение отдельно
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
31.01.2014, 20:59     Вычислить сумму положительных элементов массива, стоящих на нечетных местах
C++ (Qt)
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
#include <algorithm>
#include <functional>
#include <iomanip>
#include <iostream>
#include <numeric>
#include <random>
 
using namespace std;
 
template<typename _Ty>
void println( const _Ty & data, size_t precision = 5 )
{
  for ( const auto & i : data )
    cout << " " << setprecision( precision ) << i;
  cout << endl;
}
 
int main()
{
  setlocale( LC_ALL, "RU" );
 
  using type = float;   // тип данных
  const size_t n = 7;   // размер массива
 
  random_device generator;
  uniform_real_distribution<type> distribution( -10, 21 );
  auto random = bind ( distribution, ref(generator) );  // генератор случайных чисел
 
  vector<type> data( n );                     // массив
  generate( begin(data), end(data), random ); // заполнение случайными числами
  cout << "Исходный массив: "; println( data );
 
  //a) сумма положительных элементов, стоящих на нечетных местах;
  type sum {};
  for ( size_t i = 1; i < data.size(); i += 2 )
    if( data[i] > 0 )
      sum += data[i];
  cout << "a) Сумма: " << setw(18)
       << setprecision(10) << sum << endl;
 
  //б) первый и последний положительный элемент
  auto first = find_if( begin(data),  end(data),  [](type val) { return val > 0;} );
  auto last  = find_if( rbegin(data), rend(data), [](type val) { return val > 0;} );
  // произведение элементов массива, находящихся между первым и последним положительными элементами;
  cout << "б) Произведение: " << setprecision(10)
       << accumulate( first, last.base(), type {1}, multiplies<type>() ) << endl;
 
  //в)сортировка по возрастанию модулей значений
  sort( begin(data), end(data), [](type left, type right) {return abs(left) < abs(right);} );
  cout << "в) Сортировка: "; println( data );
 
  getchar();
}
 
Текущее время: 01:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru