Находим два наиболее близких друг к другу числа

Категория: C / C++ Комментариев: 0

Задача:
Дан некоторый массив целых чисел. Необходимо найти два наиболее близких друг к другу числа из этого массива.
Под «близких друг к другу» подразумеваются такие числа, разность которых по абсолютной величине имеет минимальное значение.

А Вот и решение:
#include <iostream>
#include <cmath>
int main()
{
const int SIZE = 10; // размер массива чисел
int arr[SIZE] = {0,15,42,34,21,54,112,325,76,3};
int r = abs(arr[0] - arr[1]); // запоминаем разность первых двух чисел массива...
int index1 = 0, index2 = 1;// ... и их индексы

for (int i = 0; i < SIZE-1; i++) //ищем такие пары чисел, разность которых меньше, чем разность первых двух
{
for (int j = i+1; j < SIZE; j++)
{
if (j == 1) continue; // не проверяем первые 2 числа, так как они были проверены в начале программы
int tmp_r = abs(arr[i] - arr[j]);
if (tmp_r < r) // если разность меньше r, то запоминаем индекс новых чисел
{
r = tmp_r;
index1 = i;
index2 = j;
}

}
}
std::cout <<arr[index1]<<" and " <<arr[index2];

return 0;
}

Автор: Кто-то   @   3 апреля 2009 Комментариев: 0
Метки :

Поблагодарить автора

Webmoney Z163628999150, R617151845974

Комментариев: 0

Комментариев к этой записи поке нет. Ваш комментарий будет первым.
оставить комментарий

Предыдущая запись
«
Следующая запись
»