Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 21.04.2022
Сообщений: 15

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

30.05.2022, 10:52. Показов 5931. Ответов 76
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать целочисленный массив из n элементов; n и
значения элементов массива ввести с клавиатуры. Найти среди его
элементов два, произведение которых имеет наибольшее значение.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2022, 10:52
Ответы с готовыми решениями:

Найти среди элементов массива два, модуль разности которых имеет наибольшее значение
Задача: Сформировать целочисленный массив A(N), эл-ми которого являются случайные числа из диапазона . Найти среди его элементов два,...

Найти среди элементов массива два, модуль разности которых имеет наибольшее значение
Сформировать целочисленный массив A , элементами которого являются случайные числа из диапазона .Найти среди его элементов два , модуль...

Сформировать целочисленный массив и найти среди его элементов два, разность которых имеет наибольшее значение
Задача 2.21 Сформировать целочисленный массив A(75) элементами которого являются случайные числа из диапозона . Найти среди его элементов...

76
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
02.06.2022, 13:37
Студворк — интернет-сервис помощи студентам
Попрошу, что бы ваши оценки, мне на кресте написали.
Что бы все спрашивали, а чё это написано?
Памятник мне ставить не станут. Деньги пропьют.
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
02.06.2022, 15:23
https://www.cyberforum.ru/atta... 1654172606
Вложения
Тип файла: mp4 final_).mp4 (1.83 Мб, 12 просмотров)
0
19 / 13 / 6
Регистрация: 25.05.2022
Сообщений: 71
02.06.2022, 20:55
А на стандартных массивах слабо?
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
02.06.2022, 21:03
Цитата Сообщение от Ron1988 Посмотреть сообщение
А на стандартных массивах слабо?
Нет.
0
19 / 13 / 6
Регистрация: 25.05.2022
Сообщений: 71
02.06.2022, 21:37
Норм или нет?

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <iostream>
#include <ctime>
#include <iomanip>  // Для setw()
 
using namespace std;
 
int main()
{
    // Создаём массив
    int size = 0;
 
    cout << "Enter array size: ";
    cin >> size;
 
    int** arr = new int* [size] {};
 
    for (int i = 0; i < size; i++)
    {
        arr[i] = new int[size] {};
    }
 
    // Закомментировать если рандомайзим числа
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            cin >> arr[i][j];
        }
    }
 
    // Раскомментировать если впадлу забивать числа вручную 
/*  srand((unsigned)time(0));
 
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            arr[i][j] = rand() % 101 - 50;    // [-50..50]
        }
    }
*/
// Выводим на консоль
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            cout << setw(3) << arr[i][j] << " ";
        }
 
        cout << "\n";
    }
 
    int num1_y = 0, num1_x = 0;    // Задаём начальные индексы 1го числа
    int num1 = arr[num1_y][num1_x];
 
    int num2_y = 0, num2_x = 1;    // Задаём начальные индексы 2го числа
    int num2 = arr[num2_y][num2_x];
 
    int max_multi = arr[num1_y][num1_x] * arr[num2_y][num2_x]; // Инициализируем умножением 1го числа на 2ое для дальнейшего сравнения
 
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            for (int y = 0; y < size; y++)
            {
                for (int x = 0; x < size; x++)
                {
                    if (i == y && j == x)  // Если хотим помножить с самим собой
                    {
                        continue; // Пропускаем
                    }
                    else // Иначе умножаем
                    {
                        int max_temp = arr[i][j] * arr[y][x];
 
                        if (max_temp > max_multi)
                        {
                            max_multi = max_temp;
 
                            num1 = arr[i][j];    // Запоминаем 1ое число
                            num1_y = i;
                            num1_x = j;
 
                            num2 = arr[y][x];    // Запоминаем 2ое число
                            num2_y = y;
                            num2_x = x;
                        }
                    }
                }
            }
        }
    }
 
    cout << "\nMax multiplication:  " << max_multi << "\n1st number index: [" << num1_y << ", " << num1_x << "]\n2nd number index: [" << num2_y << ", " << num2_x << "] \n";
 
    // Сносим массив
    for (size_t i = 0; i < size; i++)
    {
        delete[] arr[i];
    }
 
    delete[] arr;
 
    system("pause");
}
Сильно прошу не пинать за кривой код
Я сам еще только учусь, и много чего не знаю.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
02.06.2022, 21:42
А зачем двумерный массив?
0
19 / 13 / 6
Регистрация: 25.05.2022
Сообщений: 71
02.06.2022, 21:46
Цитата Сообщение от alexu_007 Посмотреть сообщение
А зачем двумерный массив?
да вроде это не принципиально в задании.
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
02.06.2022, 21:55
Когда вводишь размер массива arr, фактический размер у тебя получается arr*arr. Не знаю, хорошо это или плохо, но это как-то не очень стыкуется с условиями задачи.

В одномерном массиве можно решить задачу за один проход по массиву. В двумерном в принципе тоже, если работать с ним как с одномерным.
0
19 / 13 / 6
Регистрация: 25.05.2022
Сообщений: 71
02.06.2022, 22:05
Как в один проход то её решить?
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
02.06.2022, 22:25
Цитата Сообщение от Ron1988 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            for (int y = 0; y < size; y++)
            {
                for (int x = 0; x < size; x++)
                {
Кликните здесь для просмотра всего текста


Добавлено через 8 минут
Цитата Сообщение от Ron1988 Посмотреть сообщение
Как в один проход то её решить?
Вроде ж тут решали уже.
Ну принцип должен быть несложный; нужны два максимальных и два минимальных.
Чёнить вроде:

Для максимальных назначаем начальные значения первого и второго.

первое < второго ? свап
след. элемент > второй ? второй = сле~

повторить до упора.

С Минималькой так же и туда же. В один цыкл.

Добавлено через 5 минут
Цитата Сообщение от alexu_007 Посмотреть сообщение
В двумерном в принципе тоже, если работать с ним как с одномерным.
Цитата Сообщение от Ron1988 Посмотреть сообщение
int** arr
Тут так не прокатит.
1
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
02.06.2022, 22:26
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
int massiv[10] = {15, 2, 8, -9, 0, 5, -4, -32, 10, -11};
 
int v1 = 100;
int v2 = 100;
int v3 = -100;
int v4 = -100;
 
for(int i = 0; i < 10; i++)
{
      if (v1 >= arr[i])
      {
            v2 = v1;
            v1 = arr[i];
       }
        else if (v2 > arr[i])
             v2 = arr[i];
 
       if (v3 <= arr[i])
       {
            v4 = v3;
            v3 = arr[i];
        }
        else if (v2 < arr[i])
             v4 = arr[i]; 
}
Основа кода взята из топика № 38 от SmallEvil.

После выполнения этого кода в v1, v2 будут находиться два наибольших значения массива, в v3, v4 - два наименьших. Останется их перемножить и посмотреть, что больше.
1
19 / 13 / 6
Регистрация: 25.05.2022
Сообщений: 71
02.06.2022, 22:38
Вроде понял зачем нужно 2 мин и 2 макс числа.
0
02.06.2022, 22:41

Не по теме:

На третьи сутки Зоркий Сокол увидел, что у сарая нет стены...

0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
02.06.2022, 22:54
Цитата Сообщение от Folian Посмотреть сообщение
Ну принцип должен быть несложный; нужны два максимальных и два минимальных
Цитата Сообщение от Folian Посмотреть сообщение
С Минималькой так же и туда же. В один цыкл.
Мне просто было лень совмещать нахождение 2-ух мин. и макс. в одну функцию ,
вот такая я ленивая [блин, нету смайла жопы] ...

Добавлено через 43 секунды
Эту идею еще long399 предложил на первой странице, я просто решил пожонглировать ...
1
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
02.06.2022, 22:58
Такая шляпа получиласб
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
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> v { 15, 2, 8, -9, 0, 5, -4, -32, 10, -11 };
 
    int a { v[0] }, b { v[1] };
    int y { v[0] }, z { v[1] };
 
    for(auto x { v.begin() + 2 }; x < v.end(); ++x)
    {
        if(b > a) std::swap(a, b);
        if(z < y) std::swap(y, z);
 
        if(*x > b) b = *x;
        if(*x < z) z = *x;
    }
 
    int64_t left { static_cast<int64_t>(a) * b };
    int64_t right { static_cast<int64_t>(y) * z };
 
    auto prnt { [](int a, int b){ std::cout << a << "\t" << b << "\n"; } };
    left > right ? prnt(a, b) : prnt(y, z);
 
    return 0;
}
Цитата Сообщение от SmallEvil Посмотреть сообщение
[блин, нету смайла жопы]
Жопа есть, а смайла нет
1
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
02.06.2022, 23:56
Кликните здесь для просмотра всего текста
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,218
02.06.2022, 23:57
Обманули. даже не похоже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.06.2022, 23:57

Найти среди элементов массива два, разность которых имеет наибольшее значение
Сформировать целочисленный массив из 75 элементов. Значение элементов должны находиться в диапазоне от -5 до 20. Найти среди элементов...

Найти среди элементов массива два, модуль разности которых имеет наибольшее значение
Задача: Сформировать целочисленный массив A(N), эл-ми которого являются случайные числа из диапазона . Найти среди его элементов два,...

Найти среди элементов массива два таких, разность которых имеет наибольшее значение
Пожалуйста,помогите решить задачу C# 6)Сформироватьцелочисленный массив А(75), элементами которого являются случайные числа из...

Найти среди элементов массива два элемента, модуль разности которых имеет наименьшее значение
Дан массив X(215). Найти среди его элементов два элемента, модуль разности которых имеет наименьшее значение

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


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

Или воспользуйтесь поиском по форуму:
77
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru