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

    и определяет, сколько дней осталось до Нового года. При вводе неверных

    данных должно быть выведено сообщение об ошибке. Считается, что год

    невисокосный.
    Через case.

Ответы 2

  • p.s. программа на c++, думаю, ты это и так понял, так, на всякий ;)
  • #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.

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years