Задание: ищем похожих
Объявите структуру SHuman, описывающую человека и включающую в себя поля "Фамилия”, ”Имя”, ”Отчество”, ”Год рождения”. На вход подпрограммы подается массив элементов данной структуры.
Напишите функцию, разбивающую этих людей на группы следующим образом - если у двух человек совпадает хотя бы одно поле, они попадают в одну группу (Владимир Семенович Высоцкий и Василий Васильевич Смыслов не имеют «общих» полей, но если в компании есть также Василий Семенович Лановой, то все трое попадут в одну группу). Порядок элементов в группах не важен.
Выберите оптимальный формат возвращаемого значения (как проще всего описать разбиение?).
При разработке алгоритма используйте класс List.
Предварительно нужно скачать модуль с заготовкой - объявлена структура, массив с входными данными и операторы для наполнения массива.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PCFindSimilar
{
class Program
{
public struct SHuman
{
public string Surname; // фамилия
public string Firstname; // имя
public string Patronymic; // отчество
public int Year; // год рождения
public SHuman(string surname, string firstname, string patronymic, int year)
{
this.Surname = surname;
this.Firstname = firstname;
this.Patronymic = patronymic;
this.Year = year;
}
}
static void Main(string[] args)
{
SHuman[] Group = {new SHuman("Пушкин", "Александр", "Сергеевич", 1799),
new SHuman("Ломоносов", "Михаил", "Васильевич", 1711),
new SHuman("Тютчев", "Фёдор", "Иванович", 1803),
new SHuman("Суворов", "Александр", "Васильевич", 1729),
new SHuman("Менделеев", "Дмитрий", "Иванович", 1834),
new SHuman("Ахматова", "Анна", "Андреевна", 1889),
new SHuman("Володин", "Александр", "Моисеевич", 1919),
new SHuman("Мухина", "Вера", "Игнатьевна", 1889),
new SHuman("Верещагин", "Петр", "Петрович", 1834)};
}
}
}
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |