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

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

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

Пары в одномерном массиве - C++

13.03.2012, 00:50. Просмотров 950. Ответов 17
Метки нет (Все метки)

Составить программу, которая отыскивает среди пар элементов одномерного массива М те, разность между элементами которых есть величина наибольшая для данного массива.
Т.е. нужно сначала найти максимум, а затем через условие проверить, если разность=максимуму, то это пара? так?

Например:
C++
1
if (A[i]-A[i+1]=max) max=max+1
Но мне нужно что бы пары отыскивались по всему массиву, а не только со следующим элементом!
Просьба помочь, с условием!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2012, 00:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пары в одномерном массиве (C++):

Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве. - C++
#include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip> #include <stdio.h> #include...

Удалить пары в массиве - C++
Задан размер массива целых чисел и значения его элементов. Удалить пары соседних элементов, имеющих одинаковые значения, и вывести размер...

В одномерном массиве, состоящем из вещественных элементов вычислить номер минимального элемента в массиве, сумму элементов массива - C++
В одномерном массиве, состоящем из 10 вещественных элементов вычислить: 1. Номер минимального элемента в массиве 2. Сумму...

В массиве найти сумму каждой соседней пары элементов - C++
#include <iostream> #include <conio.h> #include <math.h> #include <time.h> #include <string> using namespace std; void...

Имеются ли в массиве пары взаимно обратных соседних чисел? - C++
Дан одномерный массив x, x,..., x. Определить, имеется ли в нем пары взаимно обратных соседних чисел. Определить число таких соседств.

Нужно найти в массиве и распечатать пары одинаковых чисел - C++
Нужно найти в массиве и распечатать пары одинаковых чисел при помощи одномерных массивов. Пример работы программы: Ввод чисел 1 2...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 00:56 #2
нет вы не поняли, причем тут максимум среди элементов?
вы берете 2 элемента и ищите разницу между ними по модулю, и находите такие 2 элемента разность между которым больше!!!
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:00  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
нет вы не поняли, причем тут максимум среди элементов?
вы берете 2 элемента и ищите разницу между ними по модулю, и находите такие 2 элемента разность между которым больше!!!
panicwassano, Т.е. мне просто нужно найти пару, у которой самая высокая разность среди остальных элементов?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 01:03 #4
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
panicwassano, Т.е. мне просто нужно найти пару, у которой самая высокая разность среди остальных элементов?
да! только по модулю ее нужно будет считать
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:05  [ТС] #5
Цитата Сообщение от panicwassano Посмотреть сообщение
да! только по модулю ее нужно будет считать
panicwassano, Спасибо большое за ответ. Не подскажете хоть примерно как это реализовать?
Само условие меня интересует.
Medved_XIII
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 12
13.03.2012, 01:27 #6
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 01:34 #7
Цитата Сообщение от Medved_XIII Посмотреть сообщение
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
наверно =)
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 01:41 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#define SIZE 10
int main(){
    int arr[SIZE] = {10,3,5,6,8,2,4,5,6,10};
    int maxd = 0;
    int left = 0;
    int right = 0;
 
    for(int i = 0;i < SIZE;i ++){
 
    if((arr[i - 1] - arr[i]) > maxd){
        maxd = (arr[i -1] - arr[i]);
                      left = arr[i - 1];
                      right = arr[i];
        }
    }
    std::cout << "Left elem "
        << left << "\nRight elem "
        << right <<  "\nMax difference " << maxd << std::endl;
    system("pause");
}
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:42  [ТС] #9
Цитата Сообщение от Medved_XIII Посмотреть сообщение
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
Вот, точно, так намного проще)
спасибо большое)
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 01:47 #10
XaJlop4ik, поспешил ,с ответом ,не пройдет все тесты.
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:58  [ТС] #11
Цитата Сообщение от MrCold Посмотреть сообщение
XaJlop4ik, поспешил ,с ответом ,не пройдет все тесты.
какие тесты?
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 02:03 #12
Не сработает
C++
1
int arr[SIZE] = {10,3,5,6,8,2,4,5,6,20};
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 02:05  [ТС] #13
MrCold, спасибо конечно, но мне сложновато разобраться в вашем коде!
Вот что у меня вышло:
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
27
28
29
30
31
32
33
34
35
#include <iostream> 
#include <math.h>
#include <windows.h>
#include <time.h>
#include <stdlib.h>
using namespace std; 
void main()
{SetConsoleCP(1251); 
SetConsoleOutputCP(1251); 
srand(time(NULL));
        int N;
        cout<<"Введите кол-во элементов в массиве Z[N]:"<<endl;
        cin>>N;
        int *Z = new int [N], i;
        cout<<"Массив Z[N]:"<<endl;
        for (i=0; i<N; ++i)
        {
                Z[i]=rand()%50-20;
                cout<<Z[i]<<" ";
        }
        cout<<endl;
        //Max
        int max=Z[0];
        for (i=0; i<N; i++)
            if (Z[i]>max)max=Z[i];
        cout<<"Max="<<max<<endl;
        //Min
        int min=Z[0];
        for (i=0; i<N; i++)
            if (Z[i]<min)min=Z[i];
        cout<<"Min="<<min<<endl;
        int par;
        par=abs(max-min);
        cout<<"Наибольшая разность между парами = "<<par<<endl;
}
Правильно ли это? Оно-то работает и считает, с этим все в порядке, но вот я не уверен что это подходит под данное мною условие(
Миниатюры
Пары в одномерном массиве  
MrCold
854 / 752 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 02:05 #14
Имел в виду что мой пример не сработает
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 02:24  [ТС] #15
Цитата Сообщение от MrCold Посмотреть сообщение
Имел в виду что мой пример не сработает
А ну ничего ведь страшного, я вставил он работает, но не совсем так как нужно)
Не могли бы Вы, проверить мой код?

Добавлено через 14 минут
т.е. не код(код работает корректно), а соответствие условия задачи, с моим решением?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 02:24
Привет! Вот еще темы с ответами:

О одномерном массиве - C++
Доброго времени суток! Наставте на путь истинный, прошу!)Завтра сдавать, а прога никакущая... Задача: задан массив М1 вещественных...

В одномерном массиве - C++
I. В одномерном массиве, состоящим из n-целых элементов, вычислить: 1) Кол-во положительных элементов массива. 2) Сумму эл-ов массива,...

В Одномерном массиве - C++
Здравствуйте,учусь в институте на заочном и дали задание в С++, так как с языком не знакома, справиться не смогла...Прошу помогите. В...

Найти в массиве пары чисел, разность между которыми минимальна - C++
Дан двум. массив целых чисел(10х10). Найти в этом массиве пары чисел, разница между которыми минимальна. Например, при вводе массива: 1...


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

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

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