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

Удалить повторяющиеся строки

11.05.2020, 21:58. Показов 4291. Ответов 29

Студворк — интернет-сервис помощи студентам
Нужна помощь, вот программа, создающая список и удаляющая из него повторяющиеся элементы. Затруднение в том, что не получается это дело перевести из чисел в строки. То есть, по итогу программа должна создавать список, заполненный с клавиатуры (можно и сразу записанный), условно из 10 элементов, и удалять из него уже повторяющиеся строки, а не числа.
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
struct List
{
    int data;
    struct List* next;
};
struct List* create_list(int a)
{
    struct List* root;
    root = (struct List*)malloc(sizeof(struct List));
    if (root)
    { 
        root->data = a;
        root->next = NULL;
    }
    return(root);
}
struct List* add(List* root, int number)
{
    struct List* temp, * p;
    temp = (struct List*)malloc(sizeof(List));
    if (temp)
    {
        temp->data = number;
        temp->next = NULL;
    }
    p = root;
    while (p->next) {
        p = p->next;
    }
    p->next = temp;
    return(root);
}
void listprint(List* lst)
{
    struct List* p;
    p = lst;
    do {
        printf("%d ", p->data);
        p = p->next;
    } while (p != NULL);
    printf("\n");
}
void freemem(List* root) {
    List* tmp = root, * prev;
    while (tmp) {
        prev = tmp;
        tmp = tmp->next;
        free(prev);
    }
    printf("\nClear!\n");
}
void removeDuplicates(struct List* list)
{
    struct List* var1, * var2, * del;
    var1 = list;
        while (var1 != NULL && var1->next != NULL)
        {
            var2 = var1;
                while (var2->next != NULL)
                {
                        if (var1->data == var2->next->data)
                        {
                            del = var2->next;
                            var2->next = var2->next->next;
                            delete(del);
 
                        }
                        else
                            var2 = var2->next;
                }
            var1 = var1->next;
        }
}
int main() {
    struct List* head;
    head = create_list(0);
    for (size_t i = 1; i < 10; i++)
    {
        head = add(head, i);
        head = add(head, i);
    }
    listprint(head);
    removeDuplicates(head);
    listprint(head);
    freemem(head);
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2020, 21:58
Ответы с готовыми решениями:

С++ Удалить повторяющиеся строки
Задача: Задан файл с записями вида: • фамилия; • имя. Создать файл с записями такого же вида, исключив из него повторяющиеся записи...

Удалить из строки повторяющиеся слова
Всем привет! Никак не могу разобраться с заданием из книги Бьерн Страуструпа: Задание: &quot;Читайте последовательность слов из...

Удалить из строки всё повторяющиеся слова
Нужно написать программу, чтобы найти все повторяющиеся слова в строке и удалить их, написал программу для определения слов вне зависимости...

29
0 / 0 / 0
Регистрация: 11.05.2020
Сообщений: 14
12.05.2020, 09:58  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Verevkin Посмотреть сообщение
А мож надо было С++Builder взять и не мучаться?
Покаж задание.
Verevkin, сама задача звучит так: "Удалить все дубликаты строк из линейного списка"
0
Злостный нарушитель
 Аватар для Verevkin
10264 / 5688 / 1266
Регистрация: 12.03.2015
Сообщений: 26,379
12.05.2020, 10:03
Цитата Сообщение от Fntsr Посмотреть сообщение
Verevkin, сама задача звучит так: "Удалить все дубликаты строк из линейного списка"
Так тут даже язык программирования не указан. Чо ты нам голову морочаешь?
0
0 / 0 / 0
Регистрация: 11.05.2020
Сообщений: 14
12.05.2020, 10:05  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Так тут даже язык программирования не указан. Чо ты нам голову морочаешь?
Учусь в унике на с++, поэтому надо на нём
0
Злостный нарушитель
 Аватар для Verevkin
10264 / 5688 / 1266
Регистрация: 12.03.2015
Сообщений: 26,379
12.05.2020, 10:08
Цитата Сообщение от Fntsr Посмотреть сообщение
Учусь в унике на с++, поэтому надо на нём
Ну среда программирования и компилятор тоже не указаны. Можно юзать любой?
0
0 / 0 / 0
Регистрация: 11.05.2020
Сообщений: 14
12.05.2020, 10:09  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Ну среда программирования и компилятор тоже не указаны. Можно юзать любой?
Visual Studio, выше писал, насколько помню
0
Злостный нарушитель
 Аватар для Verevkin
10264 / 5688 / 1266
Регистрация: 12.03.2015
Сообщений: 26,379
12.05.2020, 10:17
Цитата Сообщение от Fntsr Посмотреть сообщение
Visual Studio, выше писал, насколько помню
Я тебе говорю - другой возьми. Чо ты к Visual Studio докопался?
0
0 / 0 / 0
Регистрация: 11.05.2020
Сообщений: 14
12.05.2020, 10:21  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Я тебе говорю - другой возьми. Чо ты к Visual Studio докопался?
Опять же, преподаватель на vs сказал
По сути, всё по итогу сделали и работает, вчера помогли
Наверное и тему можно считать закрытой
0
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
12.05.2020, 13:08
Цитата Сообщение от Folian Посмотреть сообщение
у меня закралось впечатление, что const char* - это не const "тип"*, а совершенно самостоятельный тип, к которому можно привести char*, возможно ли такое? Поведение-то этих сущностей и так несколько выделяется. Где-то, может, описано доступно?
Ерунду написал; разобрался: не путать констнтный указатель и указатель на константу.
0
Параллельный Кот
 Аватар для valen10
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
12.05.2020, 13:59
Цитата Сообщение от Folian Посмотреть сообщение
меня закралось впечатление, что const char* - это не const "тип"*, а совершенно самостоятельный тип, к которому можно привести char*, возможно ли такое?
Не понял суть вопроса. const - спецификатор, с помощью const_cast его можно снять или добавить. Естественно типы с const и без него отличаются, но причем тут совершенно самостоятельный тип?
Цитата Сообщение от Folian Посмотреть сообщение
Где-то, может, описано доступно?
- Еще раз про приведение типов в языке С++ или расстановка всех точек над cast
- const_cast conversion
- в любой нормальной книге по C++.
1
Гвоздь Задиров
 Аватар для Folian
1718 / 1117 / 337
Регистрация: 25.01.2019
Сообщений: 2,940
12.05.2020, 14:15
Цитата Сообщение от valen10 Посмотреть сообщение
Не понял суть вопроса. const - спецификатор, с помощью const_cast его можно снять или добавить. Естественно типы с const и без него отличаются, но причем тут совершенно самостоятельный тип?
Это я вчера заигрался с аргументами функций и что-то в голову стрельнуло, пришли тараканы и нашептали дичи. С утра почитал - всё по полочкам сложилось.
В любом случае спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2020, 14:15
Помогаю со студенческими работами здесь

Удалить из строки все повторяющиеся символы
как удалить со строки все повторяющиеся символы???? заранее благодарен!

Удалить из строки все повторяющиеся слова (без учета регистра)
Удалить из сообщения все повторяющиеся слова (без учета регистра). У меня строка вводится в Memo. Помогите пожалуйста. Добавлено...

Удалить из строки все повторяющиеся буквы, оставив только их первые вхождения
2.Даны строки, содержащие латинские буквы. Удалить из строки все повторяю* щиеся буквы, оставив только их первые вхождения.

Перевести из C++ в Си: удалить из исходной строки слова-палиндромы, повторяющиеся более двух раз
Утро доброе. Нужна помощь. Перевести данный код в Си. Плюсы знаю хорошо, но проблема с реализацией его в Си, ибо не помню действий со...

Удалить повторяющиеся пробелы между отдельными словами строки (оставляя по одному пробелу)
Введите предложение, слова в котором разделены пробелами и в конце которого стоит точка. Удалите повторяющиеся пробелы между отдельными...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru