Работа со структурами - C# (182926)

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

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

Всем доброго дня! имеется вопрос по работе со структурами на C#. Вот условие задания:

Описать тип TDate — структура с полями целого типа Day (день), Month (месяц) и Year (год). Протестировать является ли дата правильной. Создать массив структур (не более чем для пяти дат). Вывести на экран те даты, у которых месяца являются зимними, в противном случае вывести сообщение «Нет дат, у которых месяца являются зимними».

В результате есть часть кода. Первый - это структура TDate:
using System;
 
namespace Одномерные_массивы_и_структуры
{
    internal class TDate
    {
        public int day, month, year;
        public Byte day1, month1, year1;
        public void Show()
        {
            Console.WriteLine("Введите дату");
            day = Int32.Parse(Console.ReadLine());
            month = Int32.Parse(Console.ReadLine());
            year = Int32.Parse(Console.ReadLine());            
                if ((day > 0 && day <= 31) && (month > 0 && month <= 12) && (year > 0))
                {
                    Console.WriteLine("Вы ввели следующую дату:  " + day + ". " + month + ". " + year);
                }
{
                    Console.WriteLine("Дата введена не правильно. Повторите попытку");
                    
                }
            
        }         
 
        }
    }
Второй файл, остальной код для работы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Одномерные_массивы_и_структуры
{
    class odnom_massiv
    {
        static void Main(string[] args)
        {
TDate data = new TDate();
            int day, month, year;
            data.Show();
            Console.WriteLine("Введите 5 дат");
            //int n = Byte.Parse(Console.ReadLine());
            TDate[] mas = new TDate[5];         
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("Введите " + i + "-ю дату");
                Console.WriteLine("День");
                mas[i].day1 = Byte.Parse(Console.ReadLine());
                Console.WriteLine("Месяц");
                mas[i].month1 = Byte.Parse(Console.ReadLine());
                Console.WriteLine("Год");
                mas[i].year1 = Byte.Parse(Console.ReadLine());
 
            }
Вопрос вот в чём. Когда запускаю на текущем этапе программу при работе с массивом в файле кода появляется ошибка, ссылающаяся на нулевой объект:
Как правильно его объявить ? Может массив я не правильно создал ?

Решение задачи: «Работа со структурами»

textual
Листинг программы
for (int i = 0; i < 5; i++) {
  mas[i] = new TDate();
}

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


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

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

14   голосов , оценка 3.857 из 5