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

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

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

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

13.03.2012, 00:50. Просмотров 901. Ответов 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++
Задан размер массива целых чисел и значения его элементов. Удалить пары соседних элементов, имеющих одинаковые значения, и вывести размер...

Нужно найти в массиве и распечатать пары одинаковых чисел - C++
Нужно найти в массиве и распечатать пары одинаковых чисел при помощи одномерных массивов. Пример работы программы: Ввод чисел 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++
I. В одномерном массиве, состоящим из n-целых элементов, вычислить: 1) Кол-во положительных элементов массива. 2) Сумму эл-ов массива,...

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
852 / 750 / 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
852 / 750 / 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
852 / 750 / 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
852 / 750 / 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 минут
т.е. не код(код работает корректно), а соответствие условия задачи, с моим решением?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
13.03.2012, 02:30     Пары в одномерном массиве #16
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
 
/*
 *
 */
int main( int argc, char** argv ) {
    std::srand( std::time( 0 ));
 
    const std::size_t size = 10;
    std::size_t min = 0, max = 0;
    int a[ size ] = { 0 };
 
    for ( std::size_t i = 0; i < size; i++ ) {
    a[ i ] = std::rand() % 100;
        std::cout << a[ i ] << ' ';
    }
 
    std::cout << std::endl;
 
    for ( std::size_t i = 0; i < size; i++ ) {
    if ( a[ i ] < a[ min ] )
        min = i;
 
    if ( a[ i ] > a[ max ] )
        max = i;
    }
 
    std::cout << "The maximum absolute value between the elements a[ " << min << " ] and a[ " << max << " ] = " << std::abs( a[ min ] - a[ max ] ) << std::endl;
 
    return 0;
}
Единственно если в массиве есть отрицательные числа, условие нахождение min и max нужно изменить немного.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
13.03.2012, 06:55     Пары в одномерном массиве #17
За минимум и максимум вначале цикла взять первый элемент массива, а не 0, и тип int соответственно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2012, 09:53     Пары в одномерном массиве
Еще ссылки по теме:

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

максимум в одномерном массиве - C++
Добрый день. Хочу найти максимум в одномерном массиве. Подскажите, где делаю не так. И вопрос: нужно ли для поиска максимума создавать...

В одномерном массиве,состоящем из... - C++
Всем привет!Кому не сложно,помогите выполнить задание,буду очень благодарен:) В одномерном массиве,состоящем из n вещественных...

Вычисления в одномерном массиве - C++
Здравствуйте, плохо понимаю как выполнить такую задачу((( нужно вычислить: 1) количество пар x и x, таких, что x&gt;x 2) сумму элементов...

Вычисления в одномерном массиве - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: А) произведение индексов четных элементов массива с четными значениями. ...


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

Или воспользуйтесь поиском по форуму:
Medved_XIII
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 12
13.03.2012, 09:53     Пары в одномерном массиве #18
Попробуй так:

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
#include <iostream>
#include <cmath>
#define SIZE 10
int main(){
        double arr[SIZE] = {100,103.1,-15.12,6,-8.89,2,1,55,6,10};
        double maxd = 0;
        double left = arr[0];
        double right = arr[1];
 
        for(int i = 0;i < SIZE-1;i ++)
            for(int j=i+1; j<SIZE; j++)
            {
                if( fabs(arr[i] - arr[j]) > maxd)
                {
                    maxd = fabs(arr[i] - arr[j]);
                    left = arr[i];
                    right = arr[j];
                }
        }
        std::cout << "Left elem "
                << left << "\nRight elem "
                << right <<  "\nMax difference " << maxd << std::endl;
        system("pause");
        return 0;
}
Yandex
Объявления
13.03.2012, 09:53     Пары в одномерном массиве
Ответ Создать тему
Опции темы

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