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

Определите максимум (М1) и минимум (М2) в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция, находящая два максимальных числа в массиве и возвращающая структуру с этими числами http://www.cyberforum.ru/cpp-beginners/thread1217298.html
Напишите функцию, находящую два максимальных числа в массиве и возвращающую структуру с этими числами и подробно расписать код.
C++ Функции над полями структуры - Поиск самого высокого студента Всем привет! Помогите пожалуйста добавить в мой код следующие функции:1) Поиск самого высокого студента 2) Самого тяжелого(Вес) и 3) Количество больных студентов #include "stdafx.h" #include... http://www.cyberforum.ru/cpp-beginners/thread1217287.html
Получение параметров с принтеров как сетевых, так и локальных C++
Стоит задача, получать параметры с принтеров как сетевых, так и подключенных к компьютеру, программирую на C++ недавно, много чего еще не знаю, поэтому очень прошу совета в какую сторону копать, есть...
Подробно прокомментировать класс PolarCoordinates, представляющий собой класс координат точки на плоскости C++
Написать класс PolarCoordinates, представляющий собой класс координат точки на плоскости, описанной с помощью своих полярных координат (радиуса и угла в радианах). Конструктор класса должен...
C++ Избавиться от переполнения буфера (asm) http://www.cyberforum.ru/cpp-beginners/thread1217272.html
Всем привет, на вашем форуме первый раз) Имея базовые знания по C++ и Assembler решил сварганить такую штуку: // test.cpp: определяет точку входа для консольного приложения. // #include...
C++ В матрице 3 х 3 найти max и min значения На практике задали 2 задачи по C++ вот сижу вообще не понимаю что, куда хотя пол года назад решал их ) Кому не сложно помогите: 1. В матрице 3 х 3 найти max и min значения. 2. Вводится... подробнее

Показать сообщение отдельно
Гром
210 / 129 / 11
Регистрация: 20.03.2009
Сообщений: 1,103
Записей в блоге: 16
Завершенные тесты: 1
26.06.2014, 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
int maxPos(double* arr, int sz)
{
max = arr[0]; // В качестве начального значения берем первый элемент массива
pos = 0;
for (int i = 1; i < sz; ++i) // Цикл по всем элементам, кроме первого, про который нам и так все известно
 if (arr[i] > max)
  {
  max = arr[i];
  pos = i;
  }
return pos;
}
// Аналогично minPos
double geomMid(double* arr, int sz)
{
int M1Pos = maxPos(arr, sz); // Позиция максимального элемента
int M2Pos = minPos(arr, sz); // Позиция минимального элемента
int start = std::min(M1Pos, M2Pos); // Начало - минимум из этих значений (можно также посчитать с помощью if/else или тернарного оператора "?:" )
int finish = std::max(M1Pos, M2Pos); // Конец - максимум
double prod = 1; // Произведение всех нужных чисел
for (int i = start + 1; i < finish; ++i) // Цикл по всем элементам, лежащими между start и finish (не включительно)
 if (arr[i] > 0 && arr[i] % 2 == 0) // Если элемент положительный и остаток от деления на 2 равен 0 (четный)
  prod *= arr[i]; // Умножаем произведение на него
double power = 1.0 / (finish - start - 1); // Корень n-й степени - это число в степени 1/n
return pow(prod, power); // Корень степени "число элементов между стартом и финишем не включительно"
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru