Структура с именем student. Упорядочить записи по возрастанию среднего балла - C#

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

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

Создайте структуру с именем student, содержащую поля: фамилия и инициалы, номер группы, успеваемость (массив из пяти элементов). Создать массив из десяти элементов такого типа, упорядочить записи по возрастанию среднего балла.Добавить возможность вывода фамилий и номеров групп студентов, имеющих оценки, равные только 4 или 5.Помогите с решением
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class student
    {
        public string fam;
        public string name;
        public string otche;
        public int nom;
        public int[] ysp = new int[5];
        public double midle;       
    }
    class Program
    {
        static void Main(string[] args)
        {
            student[] Massive = new student[10];
 
            Random ran = new Random();
 
            string[] name = new string[] { "Максим", "Валентин", "Дима", "Женя", "Коля", "Сергей", "Василий", "Виталий", "Григорий", "Олексей"};
            string[] fam = new string[] { "Грибенко", "Милон", "Косенко", "Мирошничюк", "Владовннко", "Слизько", "Гаврило", "Кахошко", "Ведмеденко", "Лонтовко" };
            string[] otche = new string[] { "Евгенович", "Петровыч", "Алексейичь", "Михайлович", "Едуардов", "Васильович", "Арсенович", "Павлович", "Анатолиевич", "Владиславович" };

            for (int x = 0; x < 10; x++)
            {
                Console.WriteLine("Введите фамилию студента:");
                Massive[x].fam = fam[ran.Next(0, fam.Length)];// Тут ошибка System.NullReferenceException,как решить проблему?
                Console.WriteLine("Введите имя:");
                Massive[x].name = name[ran.Next(0,9)];
                Console.WriteLine("Введите отчество:");
                Massive[x].otche = otche[ran.Next(0,9)];
                Massive[x].nom = x+1;
                for (int z = 0; z < 5; z++)
                {
                    int v = 0;
                    Massive[x].ysp[z] = ran.Next(2,5);
                    z += Massive[x].ysp[z];
                    Massive[x].midle = z / 5;
                }              
            }
 
            int[] Massive2 = new int[10];
 
            for (int x = 0; x < 10; x++) 
            {
                int bol = 0;
                for (int y = 0; y < 10; y++)
                {
                    if (Massive[x].midle > Massive[y].midle) bol++;
                }
                Massive2[x] = bol + 1;
            }
 
            for (int x = 0; x < 10; x++)
            {
                if (Massive[x].midle >= 4)
                {
                    Console.WriteLine("Студент " + Massive[Massive2[x]].fam + " " + Massive[Massive2[x]].name[0] + "." + Massive[Massive2[x]].otche[0]);
                    Console.WriteLine("Номер" + Massive2[x]);
                    Console.WriteLine("Оценки за семестр:");
                    Console.WriteLine("Математика:" + Massive[Massive2[x]].ysp[0]);
                    Console.WriteLine("Литература:" + Massive[Massive2[x]].ysp[1]);
                    Console.WriteLine("Физ.культура:" + Massive[Massive2[x]].ysp[2]);
                    Console.WriteLine("География:" + Massive[Massive2[x]].ysp[3]);
                    Console.WriteLine("Язык:" + Massive[Massive2[x]].ysp[4]);
                    Console.WriteLine("Средний бал:" + Massive[Massive2[x]].midle);
                }
                Console.ReadLine();
            }
        }
    }
}

Решение задачи: «Структура с именем student. Упорядочить записи по возрастанию среднего балла»

textual
Листинг программы
if(key == ConsoleKey.F1)

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


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

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

13   голосов , оценка 4.077 из 5