Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Что значит "массивы перекрываются" (функция memcpy)? http://www.cyberforum.ru/c-beginners/thread2015065.html
Функция memcpy копирует size байт из объекта, начинающегося в from в объект, начинающийся в to. Поведение этой функции неопределено если два массива перекрываются
C (СИ) Задача по теме Работа с файлами
Программа предназначена для работы с клиентами. Есть главный файл (oldmast.txt) он содержит подробную информацию о клиенте номер счета (ключ), имя, кол-во денег или задолжность. Если произошла...
C (СИ) Нужно перевести программу из с++ в си
#include<iostream> #include<cmath> #include<math.h> #include<conio.h> #include<Windows.h> using namespace std; /* run this program using the console pauser or add your own getch,...
C (СИ) Строка: Если все символы A входят в B, то упорядочить символы B в порядке, обратном алфавитному... Даны строки A и B. Если все символы A входят в B и в B есть повторяющиеся сим-волы, то упорядочить символы B в порядке, обратном к алфавитному, удалив повторяющиеся символы, и удалить русские буквы... http://www.cyberforum.ru/c-beginners/thread2014861.html
C (СИ) Функции. Комментарии к программе http://www.cyberforum.ru/c-beginners/thread2014787.html
Изучаю программирование на С по книге «Язык программирования C» автора Брайан Керниган, Деннис Ритчи. Немного запутался с функциями. Нужны комментарии к программе. Буду благодарен) Программа:...
C (СИ) Более компактная запись switch
Возник вопрос: можно ли в моём случае записать switch как-то более компактно и уложиться в меньшее количество строк? Фрагмент кода приложен srand(unsigned(time(NULL))); int h, i(0); int mas =...
Подсчет дней в структуре C (СИ)
Объявление структуры и функции подсчета дней: int days_sum(const struct month months, int number); struct month { char months ; char short_months ; int days; short mon_number;
C (СИ) Найти сумму неотрицательных чисел кратных 3 Дана последовательность целых чисел {Aj} произвольной длины. Найти сумму неотрицательных чисел кратных 3, наибольшее из таких чисел и номер этого числа в последовательности. Только начал изучать С,... http://www.cyberforum.ru/c-beginners/thread2014609.html
C (СИ) С использованием рекурсивной функции осуществить вывод на экран элементов одномерного массива http://www.cyberforum.ru/c-beginners/thread2014581.html
Задание: С использованием рекурсивной функции осуществить вывод на экран элементов одномерного массива, язык СИ.
C (СИ) Factorizing Algorithm. Функция, которая получает целое число, если целое число > 1, выдает факторы не могу разобраться с написанием программы. теоретически логику понимаю, но дальше не идет. помогите с написанием. вот условие Write a function that receives an integer and if the integer is... http://www.cyberforum.ru/c-beginners/thread2014343.html
mrprogt
0 / 0 / 1
Регистрация: 22.05.2017
Сообщений: 16
0

Удалить из списка элементы с повторяющимися более одного раза значениями (найти ошибку)

09.07.2017, 11:15. Просмотров 240. Ответов 2
Метки (Все метки)

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





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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <ctime>
        //структура
struct spisok
{
int value;                                               
struct spisok * next, *prev;                                    
};
 
struct spisok * dobavlenie(struct spisok *, spisok *, spisok *); 
void vyvodlist(struct spisok *, spisok *);
void zadanie(struct spisok *, spisok *, spisok *);
 
void main()
{
    setlocale(LC_CTYPE, "Rus");
    int menu=0, N1=0, N2=0;
    puts("Создание двунаправленного линейного списка (стека)");
    puts("Введите число элементов списка");
    scanf("%d", &N1);
    srand(time(NULL));
    spisok *begin1=0, *end1=0;
    struct spisok *t1 = new spisok;
    t1->value=rand();
    t1->prev=t1->next=NULL;
    begin1=end1=t1;
    for (int i = 0; i<N1-1; i++)
    {
        t1 = new spisok;
        t1->value = rand()%20;
        t1->next = NULL; 
        t1->prev=end1;
        end1->next=t1;
        end1=t1; 
    }
    _getch();
    
    m1:puts("Меню программы:");
    puts("1 –  Просмотр списка ");
    puts("2 –  Добавление элемента в список");
    puts("3 –  Выполнение индивидуального задания");
    puts("4 – Выход");
    puts("Введите цифру от 1 до 4");
    scanf("%d",&menu);
    if(menu==1){
        vyvodlist(t1, begin1); 
        goto m1;
    }
    else if(menu==2){
        dobavlenie(t1, end1, begin1);
        goto m1;
    }
    else if(menu==3){
        zadanie(t1, begin1, end1);
        goto m1;
    }
    else if(menu==4) exit(0);
    else {
    system("cls");
    puts("нажмите любую клавишу");
    _getch();
    }
 
}
 
void vyvodlist(struct spisok * t, spisok *begin)
{
t=begin;
int i = 1;  //Переменная, которая содержит номер обрабатываемой структуры (использ. при выводе для большей наглядности)
while (t) //Организуем цикл, кот выполняется пока list не станет равно NULL
{
printf("%2.d ADDR: %p VALUE: %d\tADDR_NEXT: %p\n", i, t, t->value, t->next, t->prev); //Вывод информации об элементе списка
t = t->next; //Получаем в list адрес элемента следующего за элементом, адрес которого на данной итерации хранится в list
i++; //увелич. счетчик структур
}
_getch();
}
 
struct spisok * dobavlenie (struct spisok * t, spisok * end, spisok * begin){
srand(time(NULL));
t=end;
t = new spisok;
t->value = rand()%20;
t->next = NULL; 
t->prev=end;
end->next=t;
end=t;
t=begin;
int i = 1;  //Переменная, которая содержит номер обрабатываемой структуры (использ. при выводе для большей наглядности)
while (t) //Организуем цикл, кот выполняется пока list не станет равно NULL
{
printf("%2.d ADDR: %p VALUE: %d\tADDR_NEXT: %p\tADDR_PREV: %p\n", i, t, t->value, t->next, t->prev); //Вывод информации об элементе списка
t = t->next; //Получаем в list адрес элемента следующего за элементом, адрес которого на данной итерации хранится в list
i++; //увелич. счетчик структур
}
_getch();
return(t);
}
 
 
void zadanie(struct spisok * t1,   spisok * end1, spisok * begin1,spisok * t2){
t1=begin1;
int element=0;
int i=1;
spisok *key1=NULL;
element=t1->value;
t1=end1;
while(t1){
    if(t1->value != element)
    {
        element=t1->value;
        //key1->next=t1->next;
        //key1->prev=t1->prev;
        key1=t1;
        t1=t1->next;
    }
    else 
    {t1=t1->next;
    i++;
    delete(t1);
    }
}
printf ("удален элемент: %d\n", element);
_getch();
t1=begin1;
 
    while(t1){
        t2=new spisok;
        t2->value=t1->value;
        t2->next=NULL;
        t1=t1->next;
        }
    
t2=begin1;
int i = 1;  //Переменная, которая содержит номер обрабатываемой структуры (использ. при выводе для большей наглядности)
while(t2) //Организуем цикл, кот выполняется пока list не станет равно NULL
{
printf("%2.d ADDR: %p VALUE: %d\tADDR_NEXT: %p\tADDR_PREV: %p\n", i, t2, t2->value, t2->next, t2->prev); //Вывод информации об элементе списка
t2 = t2->next; //Получаем в list адрес элемента следующего за элементом, адрес которого на данной итерации хранится в list
i++; //увелич. счетчик структур
}
_getch();
}
Добавлено через 38 секунд
не работает пункт 3

Вернуться к обсуждению:
Удалить из списка элементы с повторяющимися более одного раза значениями (найти ошибку)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2017, 11:15
Готовые ответы и решения:

В строках матрицы оставить элементы, которые встречаются более одного раза, остальные заменить нулем
Изменить таблицу a так чтобы в строках остались элементы которые встречаются более одного раза,...

Удалить из списка элементы с повторяющимися более одного раза значениями
Здравствуйте! Помогите пожалуйста! Есть задание: Удалить из списка элементы с повторяющимися ...

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

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

Из массива удалить четные элементы, встречающиеся более одного раза
Из массива удалить четные элементы встречающиеся более одного раза. пример: массив a:9 3 4 9 1 0 0...

2
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru