Вопрос задан 10.07.2023 в 23:04. Предмет Информатика. Спрашивает Романеску Яна.

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

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

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Лебедев Павел.

Ответ:

#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;

 

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот пример кода на 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, в котором вы хотите найти первый максимальный элемент и последний минимальный элемент, а затем подсчитать сумму элементов, расположенных между ними. Если максимальный элемент встречается позже минимального, выводится сообщение об этом. Обратите внимание, что пример содержит жестко заданный вектор чисел для демонстрации работы кода. Вы можете изменить его на свой входной вектор чисел.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос