• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Найти Реднеарифметическое Двух Элементов Равное Х

  • Автор темы Avicii
  • Дата начала
A

Avicii

Здравствуйте,помогите с программой. Задание: В массиве найти два члена,среднее арифметическое которых ближе всего к Х.
Есть программа,но она ищет только 1 пару таких чисел, а надо все возможные
C++:
#include <iostream>
#include <cmath>
int main()
{
const unsigned n = 10;
float X = 5.45;
int A[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
unsigned first = 0;
unsigned second = 1;
float diff = std::abs(((A[first] + A[second]) / 2) - X);
for (unsigned i = 0; i < n-1; ++i)
{
for (unsigned j = i+1; j < n; ++j)
{
float calc = std::abs(((A[i] + A[j]) / 2) - X);
if (calc < diff)
{
diff = calc;
first = i;
second = j;
}
}
}
std::cout << "A[" << first << "] = " << A[first] << std::endl;
std::cout << "A[" << second << "] = " << A[second] << std::endl;
std::cout << "average = " << ((A[first] + A[second]) / 2) << std::endl;
return 0;
}
 
R

rrrFer

проди еще раз по массиву
но вместо
if (calc < diff)
и=пиши
if (calc == diff)

тока сравнивать дробные числа нельзя, сам придумай как это правильно делать :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!