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

Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива - C++

Восстановить пароль Регистрация
 
небо
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 5
17.12.2013, 22:30     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива #1
В массиве D[0..22] найти, есть ли два элемента, стоящих друг за другом, сумма которых больше максимального числа. Вывести на печать эти значения, их номера. Если таких нет, то сообщить об этом.
напишите пожалуйста решения с расшифровкой каждой строчки
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 22:30     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива
Посмотрите здесь:

C++ Найти 2 элемента массива,сумма которых наибольшая
Найти два элемента массива, сумма которых наиболее близка к заданому числу. C++
Найти два элемента массива, сумма которых наименее близка к данному числу C++
Найти два различных элемента массива, сумма которых наиболее близка к числу R C++
C++ Найти два различных элемента массива, сумма которых наиболее близка к числу R
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
18.12.2013, 08:43     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива #2
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
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main()
{
    const int n = 22;
    int a[n];
    // нахождение максимаьлного элемента
    // смотрите std::max_element, std::begin, std::end
    int max = *std::max_element(std::begin(a), std::end(a));
    // проход по всех элементах массива начиная со второго
    // смотрите std::for_each, std::next
    std::for_each(std::next(std::begin(a)), std::end(a), 
        // проброс переменной max в область видимости лямбды
        // смотрите лямбды в C++11
        [&max](const int &value) {
            // получение предыдущего элемента массива
            // смотрите std::prev
            int prev = *std::prev(&value);
            
            if (value + prev > max) {
                // вывод значений в стандартный поток
                // смотрите std::cout, std::endl
                std::cout << value << " " << prev << " " << max << std::endl;
            }
        }
    );
   
    return EXIT_SUCCESS;
}
malfoi
 Аватар для malfoi
50 / 50 / 15
Регистрация: 17.12.2013
Сообщений: 334
18.12.2013, 09:15     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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>
 
using namespace std;
 
int main()
{
    const int n = 23;
    int arr[n]; // объявляем массив
    int arr_max; // объявим максимум
    int cur1, cur2; // объявим текущие элементы массива
    int idx = -1; // объявим индекс текущего элемента
 
    for (int i = 0; i < n; i++)
        cin >> arr[i]; // заполняем массив с клавиатуры
 
    arr_max = arr[0]; //присвоили максимуму значение первого элемента массива
    for (int i = 1; i < n; i++)
        if (arr_max < arr[i]) // делаем проверкиу, есть ли эементы больше текущего максимума
            arr_max = arr[i];
 
    for (int i = 0; i < n - 1; i++)
        if (arr[i] + arr[i + 1] > arr_max) { // ищем два элемента сумма которых больше максимума
            cur1 = arr[i]; // присваиваем значение первого элемента из пары
            cur2 = arr[i + 1]; // присваиваем значение второго элемента из пары
            idx = i; // присваиваем значение индекса первого элемента
        }
    if (idx != -1) //делаем проверку найдена ли пара (присвоили ли мы значение идекса)
        cout << "Elements: " << cur1 << " " << cur2 << endl // выводим на экран найденную пару
             << "Indexes: " << idx + 1 << " " << idx + 2 << endl; // выводим на экран индексы пары
    else
        cout << "Not found" << endl; // если пара не была найдена
 
    return 0;
}
небо
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 5
18.12.2013, 14:18  [ТС]     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива #4
спасибо!!!!!!!!!!!!!!!!
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
18.12.2013, 14:54     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива #5
Цитата Сообщение от malfoi Посмотреть сообщение
cout << "Not found" << endl;
Да, у меня такого нету...
Yandex
Объявления
18.12.2013, 14:54     Найти два элемента, стоящих друг за другом, сумма которых больше максимального числа массива
Ответ Создать тему
Опции темы

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