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

Поменять местами наибольший и наименьший элементы массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написание справки http://www.cyberforum.ru/cpp-beginners/thread1170979.html
Добрый день. Нужно написать справку. Пишу через CHM Editor? из всех перепробываных, наилучший вариант, который потом можно использовать вызывая с СИ. Все нормально, но не знаю как сделать справку, а именно оглавление. Либо посоветуете альтернтиву?
C++ Задача "Тур конем" На шахматной доске размером на поле с координатами х0, у0 находится конь – фигура, перемещающаяся по обычным шахматным правилам. Задача заключается в поиске последовательности ходов, при которой конь точно один раз побывает на всех полях доски (обойдет доску), т. е. нужно вычислить ходов. Добавлено через 22 часа 9 минут Подниму! http://www.cyberforum.ru/cpp-beginners/thread1170977.html
C++ Как отключить dll от exe. Исходников нет
Задача запустить приложение без dll которые нужны для его запуска знаю что приложение на c++ и ничем не упаковано исходников нет
Отражение в OpenGL C++
Помогите пожалуйста. Не получается сделать отражение для вращающейся фигуры (отражает только первоначальное положение фигуры) #include <vcl.h> #define GLUT_BUILDING_LIB #include <gl\gl.h> #include <gl\glu.h> #include <gl\glut.h>
C++ Арифметические выражения. Запись в файл http://www.cyberforum.ru/cpp-beginners/thread1170956.html
На борланд с++ пожалуйста! 1) Вычислить Zk=3cos(xk+α); здесь k=1,7; Массив x вводится из файла f1. α меняется от 0,2 шагом 0,4. Массив z записать в файл f2.
C++ Почему функция возвращает неправильное значение Пробовал дебажил функцию и каждый раз проверка проходит условие, хотя оно выполняется... в итоге возвращается false //проверка выиграшного хода bool winBot() { for(int i(0); i < 3; i++) { if( (((table && table) == 'O') && (table != 'X')) ) return true; else if( (((table && table) == 'O') && (table != 'X')) ) подробнее

Показать сообщение отдельно
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
07.03.2015, 16:43     Поменять местами наибольший и наименьший элементы массива
Может стоит воспользоваться стандартными алгоритмами при решении подобной задачи?

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
#include <iostream>
#include <vector>
#include <algorithm>
 
template <typename It>
void SwapMinAndMax(It first, It last) {
  auto position_of_min = std::min_element(first, last);
  auto position_of_max = std::max_element(first, last);
  std::swap(*position_of_min, *position_of_max);
}
 
template <typename E>
std::ostream& operator<<(std::ostream& ostream,
                         std::vector<E> const& elements) {
  for (const auto& element : elements) {
    ostream << element << " ";
  }
  return ostream;
}
 
int main() {
  std::vector<int> array = {-1, 4, 7, 0, 5, 4, 8, 4, -22, 6};
  std::cout << "Elements before swap:\n" << array;
  SwapMinAndMax(std::begin(array), std::end(array));
  std::cout << "\nElements after swap:\n" << array;
}
Пруф работоспособности:
http://ideone.com/xUuQu0

На мой взгляд программисты упускают многие возможности языка.
Сложность O(n) от числа элементов.
Краткость, выразительность.
 
Текущее время: 12:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru