Напишите программу на c++, которая вводит с клавиатуры номер месяца (m) и день (d), и определяет, сколько дней осталось до Нового года. При вводе неверных данных должно быть выведено сообщение об ошибке. Считается, что год невисокосный. Входная строка содержит два целых числа: номер месяца и номер дня в этом месяце. Программа должна вывести количество дней, оставшихся до Нового года (k). Если введены неверные данные, нужно вывести число -1.

Nilufar777 Nilufar777    3   04.09.2021 20:20    22

Ответы
никита154856 никита154856  19.01.2024 17:06
Хорошо, вот программа на языке C++, которая выполняет указанные вами требования:

```c++
#include
using namespace std;

int main() {
int m, d;
cout << "Введите номер месяца: ";
cin >> m;
cout << "Введите номер дня: ";
cin >> d;

// Проверка валидности введенных данных
if ((m < 1 || m > 12) || (d < 1 || d > 31)) {
cout << "Ошибка: неверные данные!" << endl;
return 0; // Программа завершается, если данные неверные
}

int days_in_months[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int days_until_new_year = 0;
for (int i = m - 1; i < 12; i++) {
days_until_new_year += days_in_months[i];
}

days_until_new_year -= d;

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

return 0;
}
```

Давайте разберем эту программу по шагам:

1. Мы объявляем переменные `m` и `d`, которые будут хранить номер месяца и номер дня соответственно.

2. После этого, мы выводим сообщение на экран с просьбой ввести номер месяца с помощью `cout`, а затем считываем введенное значение с помощью `cin` и сохраняем его в переменную `m`. Далее мы делаем то же самое для ввода номера дня.

3. Затем мы проверяем введенные значения. Если номер месяца меньше 1 или больше 12, или номер дня меньше 1 или больше 31, то выводим сообщение об ошибке и завершаем программу (`return 0`).

4. Далее мы создаем массив `days_in_months`, где каждому месяцу соответствует количество дней. В этом массиве январю соответствует элемент с индексом 0, февралю - 1 и так далее.

5. Затем мы инициализируем переменную `days_until_new_year` нулем. Эта переменная будет использоваться для подсчета количества дней до Нового года.

6. Мы используем цикл `for`, чтобы пройтись по месяцам, начиная с текущего месяца (`m - 1`) и до декабря (`11`), и прибавляем количество дней в каждом месяце к переменной `days_until_new_year`.

7. Мы вычитаем введенное количество дней `d` из переменной `days_until_new_year`.

8. Наконец, мы выводим количество дней до Нового года на экран с помощью `cout`.

Таким образом, программа проверяет введенные данные, подсчитывает количество дней до Нового года и выводит результат. Если введены неверные данные, программа выводит `-1`.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика