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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
#1

Дан массив A(N) - C++

31.10.2011, 19:13. Просмотров 867. Ответов 18
Метки нет (Все метки)

помогите пожалуйста.
Дан массив A(N) найти пару соседних элементов наиболее близко расположенных друг к другу . Мера близости R = |A[i+1]-[i] |
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 19:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан массив A(N) (C++):

Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. - C++
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. Посмотрите пожалуйста... ...

Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным - C++
Дан массив M(14).Записать в массив B все элементы , не совпадающие с минимальным. Cоставить блок схему программы

Дан массив. Создать массив 2 из четных чисел первого массива - C++
Задача: Дан массив. Создать новый массив из чётных чисел исходного массива. #endif #include <stdio.h> #include <iostream.h> ...

Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5 - C++
Помогите решить задачу. Дан массив из 25 элементов. Сформировать из него новый массив, элементы которого кратны 5.

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

Дан массив A[N]. заполнить массив В[N] элементами массива A[N], которые удовлетворяют двойному неравенству - C++
Дан массив A. заполнить массив В элементами массива A, которые удовлетворяют двойному неравенству: A< A или A< A. Незаполненные элементы...

18
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,468
Записей в блоге: 2
31.10.2011, 20:58 #2
Помогаю. Очевидно ли вам, что это задача на своеобразный поиск минимума?
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 19:13  [ТС] #3
Цитата Сообщение от Predator_2004 Посмотреть сообщение
Очевидно ли вам, что это задача на своеобразный поиск минимума?
ээээ нет....
а оно так?

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <math.h>
#include <conio.h>
 
void main()
{
 int ar[], r, i;
  for (i=1, ar[]<i,)
   {
    scanf ("%f" &ar[N]);
    r= abs(ar[1]-ar[2]);
   }
    for (i=2, ar[N-1])
    {
     if (abs(a[i+1]-a[i]) < r) then
     r= abs(a[i+1]-a[i]);
    }
}

что то типа такого? потому что?

З.Ы. me gusta!) ваще туплю и много знаю что ошибок
0
Сыроежка
Заблокирован
01.11.2011, 19:15 #4
Цитата Сообщение от cheser Посмотреть сообщение
помогите пожалуйста.
Дан массив A(N) найти пару соседних элементов наиболее близко расположенных друг к другу . Мера близости R = |A[i+1]-[i] |
В С++ есть такой стандартный алгоритм, кеоторый называется std::adjacent_find, и который выполняет вашу задачу в одну строчку!
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 19:17  [ТС] #5
Цитата Сообщение от Сыроежка Посмотреть сообщение
В С++ есть такой стандартный алгоритм, кеоторый называется std::adjacent_find, и который выполняет вашу задачу в одну строчку!
друг я тебе верю тока как это понять тогда и есть ли она в Turbo C если честно я полный нуб и С тока проходим...
0
Сыроежка
Заблокирован
01.11.2011, 19:21 #6
Цитата Сообщение от cheser Посмотреть сообщение
друг я тебе верю тока как это понять тогда и есть ли она в Turbo C если честно я полный нуб и С тока проходим...
ТОгда тебе самому придется писать этот алгоритм! В цикле сравниваешь два соседних элемента массива в соответсвии с заданным условием. Если условие выполняется, выходишь из цикла.
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 19:22  [ТС] #7
Цитата Сообщение от Сыроежка Посмотреть сообщение
ТОгда тебе самому придется писать этот алгоритм! В цикле сравниваешь два соседних элемента массива в соответсвии с заданным условием. Если условие выполняется, выходишь из цикла.
дык тогда я правильно написал примерно или нет? или ваще не туда пошел?
0
Сыроежка
Заблокирован
01.11.2011, 19:27 #8
Цитата Сообщение от cheser Посмотреть сообщение
ээээ нет....
а оно так?

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <math.h>
#include <conio.h>
 
void main()
{
 int ar[], r, i;
  for (i=1, ar[]<i,)
   {
    scanf ("%f" &ar[N]);
    r= abs(ar[1]-ar[2]);
   }
    for (i=2, ar[N-1])
    {
     if (abs(a[i+1]-a[i]) < r) then
     r= abs(a[i+1]-a[i]);
    }
}

что то типа такого? потому что?

З.Ы. me gusta!) ваще туплю и много знаю что ошибок
Во-первых, массив ar[] объявляется как целочисленный, а ввести в него пытаетесь значения типа float.
Цикл для ввода вообще некорректно написан.
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 19:31  [ТС] #9
Цитата Сообщение от Сыроежка Посмотреть сообщение
Во-первых, массив ar[] объявляется как целочисленный, а ввести в него пытаетесь значения типа float.
Цикл для ввода вообще некорректно написан.
это в scanf??? %f , а надо %i

Добавлено через 2 минуты
+ ща заметил что N не объявлена как переменная и думаю что она и не понадобится т.к. его заменю на i
0
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,468
Записей в блоге: 2
01.11.2011, 19:33 #10
Цитата Сообщение от Сыроежка Посмотреть сообщение
В С++ есть такой стандартный алгоритм, кеоторый называется std::adjacent_find, и который выполняет вашу задачу в одну строчку!
Если мне не изменяет память, adjacent_find ищет первую пару одинаковых соседних элементов из диапазона итераторов. А это не то.

Цитата Сообщение от cheser Посмотреть сообщение
наиболее близко расположенных друг к другу
это означает, что значение R в вашей формуле должно быть минимальным. То есть нужно перебрать все пары i,i+1 определить для них R, и для минимального вывести элементы на экран. Вроде как мог разжевал.
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 19:39  [ТС] #11
Цитата Сообщение от Predator_2004 Посмотреть сообщение
это означает, что значение R в вашей формуле должно быть минимальным. То есть нужно перебрать все пары i,i+1 определить для них R, и для минимального вывести элементы на экран. Вроде как мог разжевал.
то бишь мне нужно что то тика такого:
C
1
2
3
4
5
6
7
min=R;
R=i+1;
for (i=2, i<=ar[], i++)
 {
if (R < min) min=R
R++
 }
я понятно понял?
0
Сыроежка
Заблокирован
01.11.2011, 19:40 #12
Цитата Сообщение от Predator_2004 Посмотреть сообщение
Если мне не изменяет память, adjacent_find ищет первую пару одинаковых соседних элементов из диапазона итераторов. А это не то.
Невнимательно прочитал. Я думал найти первую пару, удовлетворяющую заданному условию.
Значит тиогда построить вектор из значений условий для элементов, а затем найти минимальное значение.
0
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,468
Записей в блоге: 2
01.11.2011, 19:46 #13
Цитата Сообщение от cheser Посмотреть сообщение
я понятно понял?
Не знаю, что вы там поняли. Давайте разберем ваш код.
Цитата Сообщение от cheser Посмотреть сообщение
C
1
2
3
4
5
6
7
min=R;
R=i+1;
for (i=2, i<=ar[], i++)
*{
if (R < min) min=R
R++
*}
Начнем с явного. Для каждой пары R различно. У вас R задано вообще вне цикла, соответственно от индекса не зависит. Второе, видите ли вы сходство между формулой из условия и тем, что в коде? Я - нет. Остальное типа точек с запятой, организацию цикла и пр. пока опущу.
0
cheser
0 / 0 / 0
Регистрация: 14.01.2010
Сообщений: 42
01.11.2011, 20:07  [ТС] #14
ааа я тут сравнивать начал(точнее все элементы с минимальным), мне тока 1 строчка подходит а после if выполняю мое условие r= abs(a[i+1]-a[i]);

Добавлено через 2 минуты
я ar не дописываю пишу а

Добавлено через 12 минут
подвожу итог рассуждений:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <math.h>
#include <conio.h>
 
void main()
{
 int ar[], i, a, *r, *min;
 r=a;
  for (i=1, ar[i]<i,i++)
   scanf ("%i", r++);
    min=a;
    r=a+1;
     for (i=2, 1<=ar[i], i++)
    {
     if (r<min) 
      r= abs(ar[i+1]-ar[i]);
       printf("%i", r);
    }
}
0
HighPredator
5541 / 1854 / 346
Регистрация: 10.12.2010
Сообщений: 5,468
Записей в блоге: 2
01.11.2011, 20:20 #15
Цитата Сообщение от cheser Посмотреть сообщение
подвожу итог рассуждений:
У вас вообще компилятор есть, или вы так кодите? В общем итог неутешительный.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 20:20
Привет! Вот еще темы с ответами:

Дан массив A(23). Переписать в новый массив все элементы, расположенные после последнего отрицательного. - C++
Задача Дан массив A(23). Переписать в новый массив все элементы, расположенные после последнего отрицательного. В новом массиве...

Дан массив В[0:n-1] целых чисел и числа x и y , где x<y. на основе элементов массива В сформировать массив D[0:m-1] - C++
Нужен полный текст программы, заранее благодарен

Дан вещественный массив А[N]. Сформировать массив В[3] следующим образом: - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { setlocale (LC_CTYPE,...

Дан двумерный массив размерностью 4*5. Сформировать одномерный массив - C++
Дан двумерный массив размерностью 4*5, заполненный целыми числами с клавиатуры. Сформировать одномерный массив каждый элемент которого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
01.11.2011, 20:20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru