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

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

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

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

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

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

Например:
C++
1
if (A[i]-A[i+1]=max) max=max+1
Но мне нужно что бы пары отыскивались по всему массиву, а не только со следующим элементом!
Просьба помочь, с условием!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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++
Дан одномерный массив x, x,..., x. Определить, имеется ли в нем пары взаимно обратных соседних чисел. Определить число таких соседств.

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

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

17
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 00:56 #2
нет вы не поняли, причем тут максимум среди элементов?
вы берете 2 элемента и ищите разницу между ними по модулю, и находите такие 2 элемента разность между которым больше!!!
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:00  [ТС] #3
Цитата Сообщение от panicwassano Посмотреть сообщение
нет вы не поняли, причем тут максимум среди элементов?
вы берете 2 элемента и ищите разницу между ними по модулю, и находите такие 2 элемента разность между которым больше!!!
panicwassano, Т.е. мне просто нужно найти пару, у которой самая высокая разность среди остальных элементов?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 01:03 #4
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
panicwassano, Т.е. мне просто нужно найти пару, у которой самая высокая разность среди остальных элементов?
да! только по модулю ее нужно будет считать
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:05  [ТС] #5
Цитата Сообщение от panicwassano Посмотреть сообщение
да! только по модулю ее нужно будет считать
panicwassano, Спасибо большое за ответ. Не подскажете хоть примерно как это реализовать?
Само условие меня интересует.
0
Medved_XIII
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 12
13.03.2012, 01:27 #6
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 01:34 #7
Цитата Сообщение от Medved_XIII Посмотреть сообщение
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
наверно =)
0
MrCold
855 / 753 / 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");
}
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:42  [ТС] #9
Цитата Сообщение от Medved_XIII Посмотреть сообщение
Может,чем сравнивать разницу между парами элементов найти максимальный и минимальный элемент - разница между ними и будет максимальна?
Вот, точно, так намного проще)
спасибо большое)
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 01:47 #10
XaJlop4ik, поспешил ,с ответом ,не пройдет все тесты.
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 01:58  [ТС] #11
Цитата Сообщение от MrCold Посмотреть сообщение
XaJlop4ik, поспешил ,с ответом ,не пройдет все тесты.
какие тесты?
0
MrCold
855 / 753 / 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};
0
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;
}
Правильно ли это? Оно-то работает и считает, с этим все в порядке, но вот я не уверен что это подходит под данное мною условие(
0
Миниатюры
Пары в одномерном массиве  
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
13.03.2012, 02:05 #14
Имел в виду что мой пример не сработает
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
13.03.2012, 02:24  [ТС] #15
Цитата Сообщение от MrCold Посмотреть сообщение
Имел в виду что мой пример не сработает
А ну ничего ведь страшного, я вставил он работает, но не совсем так как нужно)
Не могли бы Вы, проверить мой код?

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

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

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

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

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


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

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

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