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

Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
26.02.2012, 22:27     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности #1
Дан массив размера N. Найти номера двух ближайших элементов из этого массива (т. е. элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 22:27     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности
Посмотрите здесь:

Массив: Найти номера двух ближайших по значению элементов из этого массива и вывести их в порядке увеличения C++
C++ Найти номера тех элементов массива, которые больше своего правого соседа, и количество таких элементов
Массив. Найти количество элементов, меньших среднего арифметического положительных элементов этого массива C++
C++ Найти номера двух одинаковых элементов массива
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.02.2012, 22:33     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности #2
Если массив a[] размером N уже задан, то можно так:
C++
1
2
3
4
5
6
7
8
9
int i, j, min=abs(a[0]-a[1]), I=0, J=1;
for(i=0; i<N-1; i++)
    for(j=i+1; j<N; j++)
        if(abs(a[i]-a[j])<min))
        {
            min=abs(a[i]-a[j]);
            I=i; J=j;
        }
cout<<I<<" "<<J<<endl;
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
26.02.2012, 22:36  [ТС]     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности #3
моя задача должна примерно выглядеть так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
const int n=10;
int i, j, min=abs(a[0]-a[1]), I=0, J=1;
for(i=0; i<N-1; i++)
        for(j=i+1; j<N; j++)
                if(abs(a[i]-a[j])<min))
                {
                        min=abs(a[i]-a[j]);
                        I=i; J=j;
                }
cout<<I<<" "<<J<<endl;
return 0;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.02.2012, 07:55     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности #4
Цитата Сообщение от ne_waru_fortran Посмотреть сообщение
моя задача должна примерно выглядеть так?
почти, см. комментарии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
const int N=10;
// вот сюда еще добавить создание массива a[] размером N и инициализацию его элементов (присваивание значений элементам масcива)
int i, j, min=abs(a[0]-a[1]), I=0, J=1;
for(i=0; i<N-1; i++)
        for(j=i+1; j<N; j++)
                if(abs(a[i]-a[j])<min))
                {
                        min=abs(a[i]-a[j]);
                        I=i; J=j;
                }
cout<<I<<" "<<J<<endl;
return 0;
}
Yandex
Объявления
27.02.2012, 07:55     Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности
Ответ Создать тему
Опции темы

Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru