Нужно упорядочить записи по возрастанию номера группа с помощью интерфейса IComparer, а также сделать добавление данных в массив без ввода с клавиатуры. Я сделал такую сортировку, не знаю как с помощью IComparer
Весь код
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Students
{
struct Student : IComparer<Student>
{
public string student_name;
public int group_number;
public int[] Marks;
public int Compare(Student x, Student y)
{
if (x.group_number > y.group_number)
return 1;
else if (x.group_number < y.group_number)
return -1;
else
return 1;
}
public Student(string student_name, int group_number, int[] Marks)
{
this.student_name = student_name;
this.group_number = group_number;
this.Marks = Marks;
}
public double MediumBall()
{
double MedBall = 0;
foreach (int i in Marks)
{
MedBall += i;
}
MedBall /= Marks.Length;
return MedBall;
}
public override string ToString()
{
return string.Format("ФИО: {0} \nНомер группы: {1}", student_name, group_number);
}
}
class Program
{
static void Main(string[] args)
{
int n = 0;
Console.Write("Введите количество студентов: ");
n = int.Parse(Console.ReadLine());
Student[] students = new Student[n];
for (int i = 0; i < n; i++)
{
Console.Write("Введите фамилию и инициалы {0}-ого студента: ", i + 1);
string name = Console.ReadLine();
Console.Write("Введите номер группы {0}-ого студента: ", i + 1);
int number = int.Parse(Console.ReadLine());
Console.Write("Введите 5 оценок {0}-ого студента: ", i + 1);
string[] marks = Console.ReadLine().Split(' ');
Console.Write("\n");
int[] Marks = new int[5];
for (int a = 0; a < 5; a++)
Marks[a] = int.Parse(marks[a].ToString());
students[i] = new Student(name, number, Marks);
}
//var stud = from i in students orderby i.group_number select i;
Console.WriteLine("\n\nУпорядоченный по номеру группы массив студентов: ");
Array.Sort(students, new Student());
foreach (Student p in students)
{
Console.WriteLine("\n" + students );
}
int count = 0;
foreach (Student mark in students)
if (mark.MediumBall() > 4)
{
count++;
}
if (count == 0)
Console.WriteLine("\nCтуденты со средним баллом больше 4 отсутствуют.");
else
Console.WriteLine("\nСписок студентов со средним баллом больше 4: ");
foreach (Student student in students)
if (student.MediumBall() >= 4)
Console.WriteLine("\n" + student.ToString());
Console.ReadKey();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Программа обнаружает лица и распознает имена через текстовый файлНо если появляется лицо, имени которого нет в файле, то он берет имя первого...
Прошу помощи в разборе проблемыЯ использую 2 экземпляра класса который реализует идею паттерна поставщик/потребитель
Я выполняю запрос MySql, где получаю столбец Id с несколькими значениямиКак я могу получить все эти значения Int массивом?