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

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

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

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

17.12.2013, 22:30. Просмотров 275. Ответов 4
Метки нет (Все метки)

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

Найти два соседних элемента массива, сумма которых максимальна - C++
Доброго времени суток! Прошу помощи в решении следущих задач, которые впрочем можно решить и на Borland C++ Builder, но я предпочитаю...

Найти два соседних элемента массива, сумма которых минимальна - C++
Дан массив.Найдите два соседних элемента,сумма которых минимальнп.

Найти два элемента массива, сумма которых наименее близка к данному числу - C++
Дано вещественное число R и массив размера N. Найти два элемента массива, сумма которых наименее близка к данному числу.

Найти два элемента массива, сумма которых наиболее близка к заданому числу. - C++
Помогите пожалуйста, срочно нужно написать такую программу: задано действительное число R і массив размера N. Найти два елемента массива,...

Найти два элемента массива, сумма которых наименее близка к данному числу R - C++
1)Дано вещественное число R и массив размера n. Найти два элемента массива, сумма которых наименее близка к данному числу R. 2) Дан...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
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
50 / 50 / 15
Регистрация: 17.12.2013
Сообщений: 333
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║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
18.12.2013, 14:54 #5
Цитата Сообщение от malfoi Посмотреть сообщение
cout << "Not found" << endl;
Да, у меня такого нету...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 14:54
Привет! Вот еще темы с ответами:

Найти два различных элемента массива, сумма которых наиболее близка к числу R - C++
Дано число R и массив размера N. Найти два различных элемента массива, сумма которых наиболее близка к числу R, и вывести эти элементы в...

Найти убывающие последовательности из четырех элементов стоящих друг за другом - C++
В одномерном массиве (не менее 7 элементов) определите и выведите на экран убывающие последовательности из четырех элементов стоящих друг...

Объединить два массива друг за другом - C++
1. Даны 2 одномерных массива А и В по К элементов каждый. Создать 3-й массив С из К * 2 элементов, переписывая сначала у него все...

Найти 2 элемента массива,сумма которых наибольшая - C++
Вот так: Создать одномерный массив М за правилом: M=2+cos(i+0.2); 1.Найти 2 элемента массива,сумма которых наибольшая; ...


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

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

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