Дни оставшиеся до нового года. Непонятная ошибка - C#

Узнай цену своей работы

Формулировка задачи:

Привет , есть вот такая задача. Ввести номер месяца и номер дня, вывести число дней, оставшихся до Нового года. Пример: Введите номер месяца: 12 Введите день: 25 До Нового года осталось 6 дней. Вот что у меня получилось
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _95_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int k, n , f;
            Console.WriteLine("Введите текущий год");
            int m = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите текущий месяц");
            int d = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите текущий число");
            int y = int.Parse(Console.ReadLine());
            if ((y % 4 == 0 & y % 100 != 0) || (y % 400 == 0))
            {
                k = 366;
                f = 29;
            }
            else
            {
                k = 365;
                f = 28;
            }
            if (m == 1) { n = k - d; }
            if (m == 2) { n = k - 31 - d; }
            if (m == 3) { n = k - 31 - f - d; }
            if (m == 4) { n = k - 31 - f - 31 - d; }
            if (m == 5) { n = k - 31 - f - 31 - 30 - d; }
            if (m == 6) { n = k - 31 - f - 31 - 30 - 31 - d; }
            if (m == 7) { n = k - 31 - f - 31 - 30 - 31 - 30 - d; }
            if (m == 8) { n = k - 31 - f - 31 - 30 - 31 - 30 - 31 - d; }
            if (m == 9) { n = k - 31 - f - 31 - 30 - 31 - 30 - 31 - 31 - d; }
            if (m == 10) { n = k - 31 - f - 31 - 30 - 31 - 30 - 31 - 31 - 30 - d; }
            if (m == 11) { n = k - 31 - f - 31 - 30 - 31 - 30 - 31 - 31 - 30 - 31 - d; }
            if (m == 12) { n = k - 31 - f - 31 - 30 - 31 - 30 - 31 - 31 - 30 - 31 - 30 - d; }
            
            if (m < 1 || m > 12)
            {
                Console.WriteLine("Неверно введен номер текущего месяца!");
                
            }
            if (d < 1 || d > 31)
            {
                Console.WriteLine("Неверно введено текущее число!");
            }
            Console.WriteLine("До Нового года осталось дней: " + n);
            Console.ReadKey();
        }
    }
}
Но почему-то выводит ошибку , что n не присвоено значение. Как это исправить ? Если if (m == 1) { n = k - d; } и тд . Присваивается значение. Пробовал n = 0 . То программа всегда выводит , что "До Нового года осталось дней: 0"

Решение задачи: «Дни оставшиеся до нового года. Непонятная ошибка»

textual
Листинг программы
            Console.WriteLine("Введите текущий год");
            int m = int.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите текущий месяц");
            int d = int.Parse(Console.ReadLine());
 
            Console.WriteLine("Введите текущий число");
            int y = int.Parse(Console.ReadLine());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы