
На c ++ 28. Подсчитать сумму элементов, расположенных между первым максимальным и последним
минимальными элементами. Если максимальный элемент встречается позже минимального, то выдать сообщение об этом.

Ответы на вопрос

Ответ:
#include <iostream>
#include <ctime>
using namespace std;
void Max(int*& arr, int& size, int& maxi)
{
int max = 1;
for (int i = 0; i < size; i++)
{
if (arr[i] > max)
{
maxi = i;
break;
}
}
}
void Min(int*& arr, int& size, int& mini)
{
int min = 10000;
for (int i = 0; i < size; i++)
{
if (arr[i] < min)
{
min = arr[i];
mini = i;
}
}
}
void main()
{
srand(time(0));
setlocale(LC_ALL, "ru");
int Sum = 0;
bool after = 0;
int Maxi = 1;
int Mini = 1;
int size = 1;
cout << "Укажите размер массива - ";
cin >> size;
cout << endl;
int* arr = new int[size];
for (int i = 0; i < size; i++)
{
arr[i] = 1 + rand() % 40;
cout << arr[i] << " ";
}
Max(arr, size, Maxi);
Min(arr, size, Mini);
if (Maxi > Mini)
bool after = 1;
if (after)
{
cout << "\n\nМаксимальный эл-т встречается после минимального\n";
for (int i = Mini + 1; i < Maxi; i++)
{
Sum += arr[i];
}
}
for (int i = Maxi + 1; i < Mini; i++)
{
Sum += arr[i];
}
delete[]arr;
cout << "\nСумма = " << Sum << endl;
}
Объяснение:



Вот пример кода на C++, который решает вашу задачу:
cpp#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 5, 7, 3, 12, 8, 2, 9, 4, 6};
int maxElement = numbers[0];
int minElement = numbers[0];
int maxIndex = 0;
int minIndex = 0;
bool foundMax = false;
bool foundMin = false;
for (int i = 0; i < numbers.size(); i++) {
if (numbers[i] > maxElement) {
maxElement = numbers[i];
maxIndex = i;
foundMax = true;
}
if (numbers[i] < minElement) {
minElement = numbers[i];
minIndex = i;
foundMin = true;
}
}
if (!foundMax || !foundMin) {
std::cout << "Недостаточно элементов для подсчета." << std::endl;
return 0;
}
if (maxIndex < minIndex) {
int sum = 0;
for (int i = maxIndex + 1; i < minIndex; i++) {
sum += numbers[i];
}
std::cout << "Сумма элементов между первым максимальным и последним минимальным элементами: " << sum << std::endl;
} else {
std::cout << "Максимальный элемент встречается позже минимального." << std::endl;
}
return 0;
}
В данном примере предполагается, что у вас есть вектор чисел numbers
, в котором вы хотите найти первый максимальный элемент и последний минимальный элемент, а затем подсчитать сумму элементов, расположенных между ними. Если максимальный элемент встречается позже минимального, выводится сообщение об этом. Обратите внимание, что пример содержит жестко заданный вектор чисел для демонстрации работы кода. Вы можете изменить его на свой входной вектор чисел.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili