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

Массив: произведение элементов массива, расположенных между первым и вторым нулевыми элементами. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму с заданным числом членов http://www.cyberforum.ru/cpp-beginners/thread560936.html
привет! не поможете?
C++ Составить программу вычисления количества простых чисел, принадлежащих отрезку [m, n] помогите пожалуйста решить задачу на С++ Составить программу вычисления количества простых чисел, принадлежащих отрезку . Для проверки, является ли число простым, использовать функцию prostoe.... http://www.cyberforum.ru/cpp-beginners/thread560921.html
C++ Работа с переменными в массиве.
Пишу проект, застопорился на одном моменте: не могу понять, как можно работать с переменными в виде массива. У меня 81 переменная(каждая для своего поля IDC_EDIT), пытаюсь создать из них двумерный...
C++ Работа с файлами C++. Подсчёт строк.
Здравствуйте. Есть функция для подсчёта строк в файле. Выглядит она следующим образом: int count_string(FILE *file) { char string; int j=0; while(feof(file)==0) { fgets(string,50,file);
C++ В чем ошибка? Считать из файла и преобразовать символы в их коды. http://www.cyberforum.ru/cpp-beginners/thread560900.html
Помогите пожалуйста, что не так у меня в коде. Необходимо считать из файла и преобразовать символы в их коды. #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib>...
C++ В чем ошибка? В массиве обнулить побочную диагональ. в паскале все работает, а в с++ нет #include <iostream.h> int main() { system("chcp 1251"); system("cls"); int a; int i,j,m,n,o; cout << "Введите размер массива: "; подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
05.05.2012, 12:37
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <functional> 
 
class transform_by_idx : public std::unary_function<int, int>
{
public:
   transform_by_idx(const std::vector<int>& v):vec(v), idx(0)
   {
   }
   result_type operator () (const argument_type& )
   {
      if (idx >= vec.size())
      {
         idx = 1;
      }
      idx += 2;
      return vec[idx - 2];
   }
private:
   std::vector<int> vec;
   size_t idx;
};
 
int main()
{
   int array[] = {1,2,3,0,4,5,6,0,1};
   std::vector<int> vec(array, array + sizeof(array) / sizeof(*array));
   std::cout << "Max elem has number: " << std::max_element(vec.begin(), vec.end())
   - vec.begin() << std::endl;
   std::vector<int>::iterator first_zero = std::find(vec.begin(), vec.end(), 0);
   if (first_zero == vec.end())
   {
      std::cerr << "No zero elements" << std::endl;
      return 1;
   }
   std::vector<int>::iterator second_zero = std::find(first_zero + 1, vec.end(), 0);
   if (second_zero == vec.end())
   {
      std::cerr << "Only one element equal to zero" << std::endl;
      return 1;
   }
   std::cout << "Mult between first 0 and second 0 is: " <<
   std::accumulate(first_zero + 1, second_zero, 1, std::multiplies<int>()) << std::endl;
   std::transform(vec.begin(), vec.end(), vec.begin(), transform_by_idx(vec));
   std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/43e9ce...20bbb2dda845d7

Все ведь сделали. Осталось только чуть-чуть подумать... Ну лови, раз думать не хочешь.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru