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

Написать / переделать под C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод кода программы с Паскаль на С++ http://www.cyberforum.ru/cpp-beginners/thread631514.html
var a,s:integer; begin writeln('Введите последовательность целых чисел, окончание ввода 0'); s:=0; repeat readln(a); if a mod 2=0 then s:=s+a; until a=0; write('Сумма четных элементов=',s); readln
C++ Сортировка массива Здравствуйте. Посмотрите пожалуйста, в чем ошибка!! В С++ Билдере у меня работала такая функция для сортировки: int* Insert (int* a,int N) { int x,j; for (int i=1; i<N; i++) { x=a; j=i-1; while ((x<a) && (j>=0)) http://www.cyberforum.ru/cpp-beginners/thread631512.html
Дано действительное а Найти такое наименьшее n, что C++
1+ 1/2+...1/n a
C++ АнтиЕвклид!
Добрый день, из спортивного интереса пытаюсь найти число для которого алгоритм Евклида, выполниться хотя бы 6 раз! На работе включил перебором, но думаю это на долго. Может кто то элегантное решение подскажет?
C++ Сложение двоичных чисел, представленных в bitset http://www.cyberforum.ru/cpp-beginners/thread631486.html
Здравствуйте! Мне необходимо узнать, как можно реализовать сложение двоичных чисел, представленных в виде bitset (хотя бы инкремент). Помогите, пожалуйста.
C++ Выход за предел массива Здравствуйте, меня заинтересовала одна особенность массивов, а именно то что они не проверяются на количество элементов, из этого исходит то что с их помошью мы можем изменить/инициализировать совершенно не относящуюся к этому массиву переменную. Я бы хотел узнать возможно ли это ? подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
01.08.2012, 09:50     Написать / переделать под C++
Вместо ввода массива -- заполнение случайными числами.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>
 
// тип данных массива
typedef std::vector<float> Array;
 
// оператор для упрощенного вывода вектора
std::ostream &operator<<(std::ostream &stream, typename std::vector<float> &vector) {
  std::copy(vector.begin(), vector.end(), std::ostream_iterator<float>(stream, " "));
  return stream;
}
 
struct RandomFloat {
  // функтор случайного числа
  float operator()() { return (rand() % 200 - 100) / 10.; }
};
 
int main(int argc, char **argv) {
  srand(time(NULL));
 
  Array array;
  // заполнение массива случайными числами
  std::generate_n(std::back_inserter(array), 4 + rand() % 3, RandomFloat());
  // вывод массива
  std::cout << array << std::endl;
 
  // счетчик суммы нечетных элементов
  float sumOfOddElements = 0.0;
  // нахождение суммы нечетных элементов
  for (Array::const_iterator i = array.begin(); i < array.end(); ++(++i))
    sumOfOddElements += *i;
  // вывод результата
  std::cout << "Sum of odd elements: " << sumOfOddElements << std::endl;
 
  // первое отрицательное значение
  Array::iterator firstNegative = std::find_if(array.begin(), array.end(),
    std::bind2nd(std::less<float>(), 0));
 
  // проверка, что первое отрицательное значение существует
  if (firstNegative != array.end()) {
    // последнее отрицательное значение
    Array::iterator lastNegative = (std::find_if(array.rbegin(), array.rend(),
      std::bind2nd(std::less<float>(), 0))).base() - 1;
    // проверка, что первое и последнее отрицательные значения
    // не одно и то же
    if (firstNegative != lastNegative)
      // нахождение и вывод результата.
      std::cout << "First negative: " << *firstNegative << std::endl <<
        "Last negative: " << *lastNegative << std::endl <<
        "Sum between (exclusive): " << std::accumulate(firstNegative + 1,
        lastNegative, 0.0) << std::endl;
    else
      // существует только одно отрицательное значение
      std::cout << "There is only one negative value." << std::endl;
  } else {
    // нет отрицательных значений
    std::cout << "No negative elements." << std::endl;
  }
  return 0;
}
 
Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru