Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 10.02.2021
Сообщений: 10

В магазине сформирован список постоянных клиентов, который включает ФИО, домашний адрес покупателя и размер

13.02.2021, 23:44. Показов 4687. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В магазине сформирован список постоянных клиентов, который включает ФИО, домашний адрес покупателя и размер предоставляемой скидки. Удалить из этого списка все повторяющиеся записи, проверив ФИО и домашний
адрес покупателя

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Threading.Tasks;
 
namespace Labs3
{
    struct User
    {
        public string[] name;
        public string[] adress;
        public int[] discount;
    }
    
    class Program
    {
 
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество клиентов");
            int n = Convert.ToInt32(Console.ReadLine());
 
            User user;
            
            user.name = new string[n];
            user.adress = new string[n];
            user.discount = new int[n];
            
            
            
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine($"Введите имя клиента под индексом {i}:\t");
                user.name[i] = Console.ReadLine();
                
                Console.WriteLine("Введите адрес клиента");
                user.adress[i] = Console.ReadLine();
                
                Console.WriteLine("Введите скидку клиента");
                user.discount[i] = Convert.ToInt32(Console.ReadLine());
            }
 
            int del = 0;
            for (int i = 0; i < n-1; i++)
            {
                if (user.name[i] == user.name[i+1] && user.adress[i] == user.adress[i+1])
                {
                    del++;
                }
            }
 
            Console.WriteLine(del);
            
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Имя клиента {0}, Адрес клиента {1}, Скидка клиента {2} ",user.name[i], user.adress[i], user.discount[i]);
            }
 
        }
    }
}
Всем привет, не могу понять как удалить элемент из массива именно в такой ситуации если используется структура.
Понимаю что нужно создать новый массив и записать элементы массива до индекса и после индекса. Но вот не могу додуматься как это реализовать. Помогите пожалуйста)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2021, 23:44
Ответы с готовыми решениями:

В магазине формируется список лиц, записавшихся на покупку товара. Вид списка: номер, ФИО, домашний адрес, дата учета
Написать программу обработки файла данных, состоящих из структур, в которой реализованы следующие функции: стандартная обработка файла...

Для получения места в общежитии формируется список студентов, который включает ФИО студента, группу, средний балл, доход
Для получения места в общежитии формируется список студентов, который включает ФИО студента, группу, средний балл, доход на члена семьи....

Структура: Удалить из списка все повторные записи, проверяя ФИО и домашний адрес
Создать программу, реализующую поставленную задачу: в магазине формируется список лиц, записавшихся на покупку товара повышенного спроса....

5
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
13.02.2021, 23:58
kjsjsjsjsjss, а какой смысл в структуре хранить массивы? Нужно сделать структуру User с необходимыми полями, а далее создавать массив User-ов и работать уже с ним.
0
0 / 0 / 0
Регистрация: 10.02.2021
Сообщений: 10
14.02.2021, 00:06  [ТС]
ProgItEasy, Подсмотрел на одном сайте просто, там описывалась работа массивов и структур. Понял исправлю, а как в итоге в таком случае как на 44 строке удалить повторяющиеся элементы?
Миниатюры
В магазине сформирован список постоянных клиентов, который включает ФИО, домашний адрес покупателя и размер  
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
14.02.2021, 00:10
kjsjsjsjsjss, приведите код в нормальный вид, а я тогда помогу с удалением. На этом сайте дан плохой пример, так никто не делает.
0
0 / 0 / 0
Регистрация: 10.02.2021
Сообщений: 10
14.02.2021, 00:33  [ТС]
ProgItEasy, Вот так зарефакторил)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
using System;
using System.Threading.Channels;
using System.Threading.Tasks;
 
namespace Labs3
{
    public struct User
    {
        public string name;
        public string adress;
        public int discount;
 
        public void Info()
        {
            Console.WriteLine("Введите имя клиента под индексом");
            name = Console.ReadLine();
                
            Console.WriteLine("Введите адрес клиента");
            adress = Console.ReadLine();
                
            Console.WriteLine("Введите скидку клиента");
            discount = Convert.ToInt32(Console.ReadLine());
        }
    }
    
    public static class  Program
    {
 
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество клиентов");
            int n = Convert.ToInt32(Console.ReadLine());
            
            User[] u = new User[n];
            for (int i = 0; i < n; i++)
            {
                u[i].Info();
            }
 
            foreach (var s in u)
            {
                Console.WriteLine("{0}, {1}, {2} ", s.name, s.adress, s.discount);
            }
        }
    }
}
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
14.02.2021, 01:23
kjsjsjsjsjss, уже лучше, повторяющиеся элемента удалить можно, например, так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static User[] RemoveDuplicates(User[] users)
{
    List<User> uniqueUsers = new List<User>();
            
    for (int i = 0; i < users.Length; i++)
    {
        if (!uniqueUsers.Any(user => ((user.name == users[i].name) && (user.adress == users[i].adress))))
            uniqueUsers.Add(users[i]);
    }
            
    return uniqueUsers.ToArray();
}
Но лучше использовать другой вариант.
C#
1
2
3
4
5
class UserComparer : IEqualityComparer<User>
{
    public bool Equals(User user1, User user2) => (GetHashCode(user1) == GetHashCode(user2));
    public int GetHashCode(User user) => String.Concat(user.name, user.adress).GetHashCode();
}
Далее для удаления дублей нужно добавить в код строку:
C#
1
u = u.Distinct(new UserComparer()).ToArray();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2021, 01:23
Помогаю со студенческими работами здесь

Простой телефонный справочник(список контактов: ФИО, телефон, адрес) на Javascript
Разработать интерфейс локального приложения для накопления документов (список адресов и телефонов друзей).

Для получения места в общежитии формируется список студентов, который включает Ф.И.О. студента, группу, средни
Для получения места в общежитии формируется список студентов, который включает Ф.И.О. студента, группу, средний балл, доход на члена семьи....

Запрос на постоянных клиентов
Есть 3 таблицы: Заказы, Авто клиента. Нужно вывести постоянных клиентов у которых заказов больше 3. В таблице заказы есть поле код авто...

Создать упорядоченный список с информацией о пяти студентах: имя, фамилия, ВУЗ, факультет, домашний адрес, телефон.
ААА... Ребята, прошу о помощи=) Delphi не поддается=( Сессия на носу, решить задачу не могу=(... ...&quot;Создать упорядоченный список...

Как определить ПО для постоянных клиентов
Задача Гостиница предоставляет номера клиентам. Каждый номер характеризуется вместимостью, комфортностью (люкс, полулюкс, обычный) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru