C++ пользователь вводит прибыль фирмы за год (12 месяцев). затем пользователь вводит диапазон (например, 3 и 6 - поиск между 3-м и 6-м месяцем). необходимо определить месяц, в котором прибыль была максимальная и месяц, в котором прибыль была минимальная с учетом выбранного диапазона.​

pedyxa12 pedyxa12    2   10.12.2019 14:09    163

Ответы
omka02 omka02  21.12.2023 21:02
Хорошо, давайте решим эту задачу шаг за шагом.

Первым шагом будет получение ввода от пользователя. Мы должны запросить у пользователя 12 значений - прибыль фирмы за каждый месяц. Давайте обозначим прибыль за каждый месяц переменными m1, m2, ..., m12. Мы можем использовать операторы ввода/вывода для этого.

```cpp
#include

int main() {
// Получение ввода от пользователя
int m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12;
std::cout << "Введите прибыль фирмы за каждый месяц:\n";
std::cin >> m1 >> m2 >> m3 >> m4 >> m5 >> m6 >> m7 >> m8 >> m9 >> m10 >> m11 >> m12;

// Ввод диапазона
int start_month, end_month;
std::cout << "Введите начальный и конечный месяцы диапазона:\n";
std::cin >> start_month >> end_month;

// Проверка на корректность ввода диапазона
if (start_month < 1 || start_month > 12 || end_month < 1 || end_month > 12) {
std::cout << "Некорректный ввод месяца. Пожалуйста, введите значения от 1 до 12.\n";
return 0;
}
```

На следующем шаге необходимо проверить, что введенный диапазон является корректным. Месяц должен быть от 1 до 12. Если диапазон некорректный, мы должны вывести сообщение об ошибке и закончить программу.

После получения ввода мы можем начать обработку данных. Мы итерируемся по указанному диапазону и пытаемся найти месяц с максимальной и минимальной прибылью.

```cpp
// Поиск месяца с максимальной и минимальной прибылью
int max_profit = m1;
int max_profit_month = 1;
int min_profit = m1;
int min_profit_month = 1;

for (int i = start_month; i <= end_month; i++) {
if (max_profit < m) {
max_profit = m;
max_profit_month = i;
}

if (min_profit > m) {
min_profit = m;
min_profit_month = i;
}
}

// Вывод результатов
std::cout << "Месяц с максимальной прибылью: " << max_profit_month << "\n";
std::cout << "Месяц с минимальной прибылью: " << min_profit_month << "\n";

return 0;
}
```

Находим месяц с максимальной и минимальной прибылью, сохраняя значения в соответствующих переменных. Мы идем по выбранному диапазону (от start_month до end_month) и сравниваем текущую прибыль (m) с максимальной и минимальной прибылью. Если текущая прибыль больше максимальной прибыли, мы обновляем значения максимальной прибыли и месяца. Если текущая прибыль меньше минимальной прибыли, мы обновляем значения минимальной прибыли и месяца.

Наконец, мы выводим результаты, используя оператор вывода.

Вот полный код программы:

```cpp
#include

int main() {
// Получение ввода от пользователя
int m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12;
std::cout << "Введите прибыль фирмы за каждый месяц:\n";
std::cin >> m1 >> m2 >> m3 >> m4 >> m5 >> m6 >> m7 >> m8 >> m9 >> m10 >> m11 >> m12;

// Ввод диапазона
int start_month, end_month;
std::cout << "Введите начальный и конечный месяцы диапазона:\n";
std::cin >> start_month >> end_month;

// Проверка на корректность ввода диапазона
if (start_month < 1 || start_month > 12 || end_month < 1 || end_month > 12) {
std::cout << "Некорректный ввод месяца. Пожалуйста, введите значения от 1 до 12.\n";
return 0;
}

// Поиск месяца с максимальной и минимальной прибылью
int max_profit = m1;
int max_profit_month = 1;
int min_profit = m1;
int min_profit_month = 1;

for (int i = start_month; i <= end_month; i++) {
int m = 0;

switch (i) {
case 1:
m = m1;
break;
case 2:
m = m2;
break;
case 3:
m = m3;
break;
case 4:
m = m4;
break;
case 5:
m = m5;
break;
case 6:
m = m6;
break;
case 7:
m = m7;
break;
case 8:
m = m8;
break;
case 9:
m = m9;
break;
case 10:
m = m10;
break;
case 11:
m = m11;
break;
case 12:
m = m12;
break;
default:
break;
}

if (max_profit < m) {
max_profit = m;
max_profit_month = i;
}

if (min_profit > m) {
min_profit = m;
min_profit_month = i;
}
}

// Вывод результатов
std::cout << "Месяц с максимальной прибылью: " << max_profit_month << "\n";
std::cout << "Месяц с минимальной прибылью: " << min_profit_month << "\n";

return 0;
}
```

Надеюсь, это поможет вам понять, как решить эту задачу! Если у вас есть еще вопросы, не стесняйтесь задавать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика