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

Вычислить максимальный по модулю элемент массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить b=2*tg(x)+ 4/3 *ctg(y) http://www.cyberforum.ru/cpp-beginners/thread379277.html
Разработать программу для вычисления математического выражения. b=2*tg(x)+ 4/3 *ctg(y)
C++ как можно разбить на группы кучу переменных? пишу прогу которая высчитывает разную статистику и в ней переменных штук 30.. например int iOrdersLoss int iOrdersProfit int iPeriodsLoss int iPeriodsProfit double dExpectedPayoff http://www.cyberforum.ru/cpp-beginners/thread379276.html
Помогите сделать программку:С введенного текста вывести именно короткое слово. C++
С введенного текста вывести самое короткое слово.
C++ Поиск последнего файла
Доброго времени суток. У меня есть задача "получить список файлов (по расширению) в каталоге, их имена, выбрать из них последний скопированный в каталог, получить его имя в переменную для...
C++ Задачка на строки http://www.cyberforum.ru/cpp-beginners/thread379244.html
Помогите кто может, пожалуйста. Задана строка S. Найдите количество ее различных подстрок, включая пустую. Буквы подстроки могут идти не подряд в самой строке. Ввод В первой строке записана...
C++ Срочно Народ помогите! первая задача///Массив заполнять случайными числами от -5 до 5. В одномерном массиве состоящем из 10 целых элементов вычислить: а)номер максимального элемента массива б)произведение элементов... подробнее

Показать сообщение отдельно
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
07.11.2011, 21:25
STL:
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
66
67
68
69
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <functional>
#include <numeric>
#include <cstdlib>
#include <ctime>
 
template <int min, int max>
struct RandomInteger {
  int operator()() {
    return rand() % (max - min + 1) + min;
  }
};
 
std::ostream &operator<<(std::ostream &stream,
  const std::vector<int> &array) {
  for (std::vector<int>::const_iterator i = array.begin();
    i != array.end(); ++i)
    stream << (*i) << (((i + 1) != array.end()) ? ", " : "");
  return stream;
}
 
struct CompareByAbs {
  template <class ValueType>
  bool operator()(ValueType a, ValueType b) {
    return (abs(a) < abs(b));
  }
};
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  size_t arraySize = 18 + rand() % 5;
  std::vector<int> array(arraySize);
 
  std::generate(array.begin(), array.end(), RandomInteger<-5, 5>());
 
  std::cout << array << std::endl;
 
  std::cout << "Maximum by abs value is " << *(std::max_element(array.begin(),
    array.end(), CompareByAbs())) << std::endl;
 
  std::vector<int>::iterator firstPositive = std::find_if(array.begin(),
    array.end(), std::bind2nd(std::greater<int>(), 0));
 
  if (firstPositive != array.end()) {
    std::vector<int>::iterator secondPositive = std::find_if(firstPositive + 1,
      array.end(), std::bind2nd(std::greater<int>(), 0));
    if (secondPositive != array.end()) {
      int sum = std::accumulate(firstPositive + 1, secondPositive, 0);
      std::cout << "Sum between two first positive elements [" <<
        *firstPositive << ":" << *secondPositive << "] is " <<
        sum << std::endl;
    } else {
      std::cout << "No second positive in array." << std::endl;
    }
  } else {
    std::cout << "No positives in array." << std::endl;
  }
 
  std::partition(array.begin(), array.end(), 
    std::not1(std::bind2nd(std::equal_to<int>(), 0)));
 
  std::cout << "Zeroes last: " << std::endl << array << std::endl;
 
  return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru