Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 5
1

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

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

В массиве D[0..22] найти, есть ли два элемента, стоящих друг за другом, сумма которых больше максимального числа. Вывести на печать эти значения, их номера. Если таких нет, то сообщить об этом.
напишите пожалуйста решения с расшифровкой каждой строчки
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2013, 22:30
Ответы с готовыми решениями:

В массиве найти два элемента, стоящих друг за другом, сумма которых больше максимального числа
В массиве D найти, есть ли два элемента, стоящих друг за другом, сумма которых больше максимального...

В массиве два элемента, стоящих друг за другом, сумма которых больше максимального числа
Пожалуйста решите задачу используя функции и процедуры, заранее спасибо: В массиве D найти, есть...

Найти номера столбцов матрицы, где сумма элементов больше нуля. Найти номер максимального элемента массива. Используя цикл FOR.
Задача №1. Дана матрица А,размерностью m x n. Найти номер столбцов матрицы в которых сумма...

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

4
║XLR8║
1211 / 908 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
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;
}
1
50 / 50 / 61
Регистрация: 17.12.2013
Сообщений: 333
18.12.2013, 09:15 3
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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 / 0
Регистрация: 17.12.2013
Сообщений: 5
18.12.2013, 14:18  [ТС] 4
спасибо!!!!!!!!!!!!!!!!
0
║XLR8║
1211 / 908 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
18.12.2013, 14:54 5
Цитата Сообщение от malfoi Посмотреть сообщение
cout << "Not found" << endl;
Да, у меня такого нету...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2013, 14:54

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

Найти два соседних элемента массива, сумма которых максимальна
Дан массив размера N. Найти два соседних элемента, сумма которых максимальна, и вывести эти...

Найти два элемента массива, сумма которых наиболее близка к максимуму массива, и поменять их местами
Всем доброго времени суток, помогите пожалуйста, программы нужно написать, они не сложные, но этот...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru