Вопрос задан 22.07.2023 в 15:29. Предмет Информатика. Спрашивает Иванова Алиса.

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

осталось до Нового года. При вводе неверныхданных должно быть выведено сообщение об ошибке. Считается, что годневисокосный.Через case.
0 0
Перейти к ответам

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

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

short int year[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int month = 0, day = 0, daysUntilNewYear = 0;

while (month == 0)

{

 cout << "Введите месяц: ";

 cin >> month;

 if (month < 1 || month > 12)

 {

  month = 0;

  cout << "В году лишь 12 месяцев, повторите ввод" << endl;

 }

}

while (day == 0)

{

 cout << "Введите день: ";

 cin >> day;

 if (day > year[month - 1] || day < 1)

 {

  day = 0;

  cout << "В выбранном месяце " << year[month - 1] << " дней, повторите ввод" << endl;

 }

}

for (int i = month - 1; i < 12; i++)

{

 daysUntilNewYear += year[i];

}

daysUntilNewYear -= day - 1;

cout << "До Нового Года осталось " << daysUntilNewYear << " дней"<< endl;

system("pause");

return 0;

}

Если через case делать, то будет больше кода и он будет менее понятен - смысла в этом нет, поэтому сделал через while.

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

Для решения этой задачи, напишем программу на языке программирования C++ с использованием конструкции switch-case. В программе мы будем проверять введенные значения номера месяца и дня, а затем рассчитаем количество оставшихся дней до Нового года.

cpp
#include <iostream> int main() { int month, day; int days_left = 0; // Ввод номера месяца std::cout << "Введите номер месяца (1-12): "; std::cin >> month; // Проверка на корректный номер месяца if (month < 1 || month > 12) { std::cout << "Ошибка: неверный номер месяца." << std::endl; return 1; } // Ввод дня std::cout << "Введите номер дня (1-31): "; std::cin >> day; // Проверка на корректный номер дня if (day < 1 || day > 31) { std::cout << "Ошибка: неверный номер дня." << std::endl; return 1; } // Рассчет оставшихся дней до Нового года через switch-case switch (month) { case 1: // Январь days_left = 31 - day; break; case 2: // Февраль days_left = 31 + 28 - day; // Предполагаем, что год високосный break; case 3: // Март days_left = 31 + 28 + 31 - day; break; case 4: // Апрель days_left = 31 + 28 + 31 + 30 - day; break; case 5: // Май days_left = 31 + 28 + 31 + 30 + 31 - day; break; case 6: // Июнь days_left = 31 + 28 + 31 + 30 + 31 + 30 - day; break; case 7: // Июль days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 - day; break; case 8: // Август days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 - day; break; case 9: // Сентябрь days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 - day; break; case 10: // Октябрь days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 - day; break; case 11: // Ноябрь days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 - day; break; case 12: // Декабрь days_left = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 - day; break; } // Вывод результата if (days_left < 0) { std::cout << "Новый год уже наступил!" << std::endl; } else { std::cout << "До Нового года осталось " << days_left << " дней." << std::endl; } return 0; }

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

0 0

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

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

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

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