Как записать данные в поле структуры, являющееся массивом? - C#

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

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

Доброго времени суток! Есть задача: записать данные в поле структуры, являющееся массивом. Понимаю, что использование класса тут уместнее.В общем-то с ним проблем и не возникло.Но условие- использование именно структуры. Получился вот такой код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Structure
{
    struct Student
    {
        public string fio;
        public int nomer_gruppi;
        public int[] marks;
        public Student(string fio, int nomer_gruppi, int[] marks)
        {
            this.fio = fio;
            this.nomer_gruppi = nomer_gruppi;
            this.marks = new int[5];
        }
 
        public void Show()
        {
            Console.WriteLine("ФИО студента:{0}\nномер группы:{1}", fio, nomer_gruppi);
 
            for (int j = 0; j < 5; j++)
            {
                Console.Write("Оценка " + (j + 1) + " -> {0} | ", marks[j]);
            }
 
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
 
            Console.WriteLine("Введите количество студентов для добавления: ");
            int n = int.Parse(Console.ReadLine());
            int[] mark = new int[5];
            Student[] St = new Student[n];
            for (int i = 0; i < n; i++)
            {
                St[i] = new Student();
            }
            for (int i = 0; i < n; i++)
            {
                Console.Write("Введите ФИО студента: ");
                St[i].fio = Console.ReadLine();
                Console.Write("Введите номер группы: ");
                St[i].nomer_gruppi = int.Parse(Console.ReadLine());
                Console.WriteLine("Успеваемость: ");
 
                for (int j = 0; j < 5; j++)
                {
                    Console.Write("Оценка " + (j + 1) + " -> ");
 
                    mark[j] = int.Parse(Console.ReadLine());
                    
                }
                St[i].marks = mark;
            }

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < 5; j++)
                {
 
                    Console.WriteLine("итерация " + i + "итерация " + j + " {0} {1}", St[i].fio, St[i].marks[j]);
                }
            }
            Console.ReadKey();
        }
    }
}
Никаких ошибок или варнингов Вижуал студия не кидает, но в структуру записывается только последний введённый массив. Укажите пожалуйста где тут заковыка, а то уже надоело с бубном плясать над задачей которая на С++ занимает не больше пары минут

Решение задачи: «Как записать данные в поле структуры, являющееся массивом?»

textual
Листинг программы
St[i].marks = mark.ToArray();

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


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

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

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