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

Удалить из списка все элементы, числа в которых больше 10

14.08.2018, 14:52. Показов 11516. Ответов 16

Студворк — интернет-сервис помощи студентам
Разработайте программу, которая вводит с клавиатуры ввода числа и помещает их в линейный односвязный список. Затем удаляет из списка все элементы, числа в которых больше 10. Вывести на экран числа из результирующего списка.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.08.2018, 14:52
Ответы с готовыми решениями:

Удалить из данного списка списков все, длина которых больше заданного числа, с помощью REMOVE-IF[-NOT]
Удалить из данного списка списков все, длина которых больше заданного числа, с помощью REMOVE-IF.

Удалить все элементы массива, значения которых больше введенного числа
Удалить все элементы массива, значения которых больше введенного числа.

Матрицы. Удалить все строки, все элементы которых больше 34
1) Дана вещественная матрица А(n,m),где n>10, m<10. Разработайте программу, которая удаляет все строки,содержащие только элементы,большие...

16
2 / 2 / 0
Регистрация: 20.07.2018
Сообщений: 28
14.08.2018, 15:02
Проще: в список вносить только числа не больше 10.
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
20.08.2018, 15:42  [ТС]
Это конечно да, но задача поставлена именно вот так
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
20.08.2018, 16:08
Настя2519, линейный односвязный список тоже нужно реализовать?
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
20.08.2018, 16:27  [ТС]
Цитата Сообщение от _stanislav Посмотреть сообщение
Настя2519, линейный односвязный список тоже нужно реализовать?
в лучшем случае да,но тут хотя бы разобраться с функцией удаления
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
20.08.2018, 16:37
Цитата Сообщение от Настя2519 Посмотреть сообщение
но тут хотя бы разобраться с функцией удаления
сначала надо разобраться со структурой односвязный список, тогда уже будет более менее понятно как удалять из него элементы
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
20.08.2018, 17:13  [ТС]
Цитата Сообщение от _stanislav Посмотреть сообщение
сначала надо разобраться со структурой односвязный список, тогда уже будет более менее понятно как удалять из него элементы
ну как бы с этим я вроде бы худо- бедно разобралась
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct list
{
    int inf;
    list *next;
};
 
void create(list *&head, int n)
{
    list *p = head;
    head = 0;
    for (int i = 1; i <= n; i++)
    {
        p = new list;
        cin >> p->inf;
        p->next = head;
        head = p;
    }
}
void print(list*head)
{
    list *p = head;
    while (p != NULL)
    {
        cout << p->inf << "->";
        p = p->next;
    }
    cout << "NULL\n" ;
    return;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    list *head;
    
    int n;
    cout << "введите число элементов списка: ";
    cin >> n;
    cout << "Элементы: ";
    create(head, n);
    print(head);
    
    system("pause");
    return 0;
}
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
20.08.2018, 17:15
Цитата Сообщение от Настя2519 Посмотреть сообщение
ну как бы с этим я вроде бы худо- бедно разобралась
функцию вставки не нужно реализовывать?
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
20.08.2018, 17:32  [ТС]
Цитата Сообщение от _stanislav Посмотреть сообщение
функцию вставки не нужно реализовывать?
нет, только удаление элементов больше 10)
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
20.08.2018, 17:50
Настя2519, вот заготовка, пища для ума, дальше сделаешь?
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
void Delete(list *head, int i)
{
    list* root = head;
 
    while (head++)
    {
        if (head->inf == i)
            break;
    }
 
    if (head)
        return;
 
    if (head == root)
    {
        
    }
    else if (!head->next)
    {
        
    }
    else
    {
    
    }
}
Добавлено через 10 минут
ошибка в 11 строчке
C++
1
if (!head)
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
20.08.2018, 18:15
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
//g++  5.4.0
 
#include <iostream>
#include <forward_list>
#include <iterator>
 
 
std::ostream & operator<<(std::ostream & stream, std::forward_list<int> const & lst)
{
    for (auto && e: lst) {
        stream << e << ' ';
    }
    return stream;
}
 
std::istream & operator>>(std::istream & stream, std::forward_list<int> & lst)
{
    lst.assign(std::istream_iterator<int>(stream), std::istream_iterator<int>());
    return stream;
}
 
int main()
{
    std::forward_list<int> lst;
    std::cin >> lst;
    std::cout << "source: " << lst << std::endl;
    lst.remove_if([](int x){ return x > 10; });
    std::cout << "result: " << lst << std::endl;
}
http://rextester.com/EYM16874
1
20.08.2018, 18:51

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Осторожно! Мой код может поломать Вашу психику.
Тот редкий случай когда твой код не сломал мою психику. :D

0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
20.08.2018, 19:18  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
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
//g++  5.4.0
 
#include <iostream>
#include <forward_list>
#include <iterator>
 
 
std::ostream & operator<<(std::ostream & stream, std::forward_list<int> const & lst)
{
    for (auto && e: lst) {
        stream << e << ' ';
    }
    return stream;
}
 
std::istream & operator>>(std::istream & stream, std::forward_list<int> & lst)
{
    lst.assign(std::istream_iterator<int>(stream), std::istream_iterator<int>());
    return stream;
}
 
int main()
{
    std::forward_list<int> lst;
    std::cin >> lst;
    std::cout << "source: " << lst << std::endl;
    lst.remove_if([](int x){ return x > 10; });
    std::cout << "result: " << lst << std::endl;
}
http://rextester.com/EYM16874
тааак , а можно хотя бы комментарии добавить,если не сложно , конечно классно , что код работает, НО что-то как-то слоожно и не понятно

Добавлено через 1 минуту
Цитата Сообщение от _stanislav Посмотреть сообщение
Настя2519, вот заготовка, пища для ума, дальше сделаешь?
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
void Delete(list *head, int i)
{
    list* root = head;
 
    while (head++)
    {
        if (head->inf == i)
            break;
    }
 
    if (head)
        return;
 
    if (head == root)
    {
        
    }
    else if (!head->next)
    {
        
    }
    else
    {
    
    }
}
Добавлено через 10 минут
ошибка в 11 строчке
C++
1
if (!head)
возможно, но это не точно
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
23.08.2018, 11:42  [ТС]
Цитата Сообщение от _stanislav Посмотреть сообщение
Настя2519, вот заготовка, пища для ума, дальше сделаешь?
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
void Delete(list *head, int i)
{
    list* root = head;
 
    while (head++)
    {
        if (head->inf == i)
            break;
    }
 
    if (head)
        return;
 
    if (head == root)
    {
        
    }
    else if (!head->next)
    {
        
    }
    else
    {
    
    }
}
Добавлено через 10 минут
ошибка в 11 строчке
C++
1
if (!head)
не могли бы вы мне помочь реализовать функцию удаления до конца????
Сдавать через 2 дня , а я конкретно торможу..
0
26 / 23 / 12
Регистрация: 25.06.2018
Сообщений: 91
23.08.2018, 12:47
Лучший ответ Сообщение было отмечено Настя2519 как решение

Решение

Можно реализовать как Croessmah. Так в принципе и надо,но задача для Насти - написать работу со списком. Там все просто:
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct list
{
    int inf;
    list *next;
         list(int value, list* _next) 
        {
            inf = value;
            next = _next;
        }
     void deleteNextElement()
     {
         if(next != NULL)
         {
            list *tmp = next;
            next = tmp->next;
            delete tmp;
     }
};
 
list* create(int n)
{
    int value;
    list* head = NULL;
    for (int i = 1; i <= n; i++)
    {
        cin >> value;
        head = new list(value, head);
    }
    return head;
}
 
void print(list*head)
{
    list *p = head;
    while (p != NULL)
    {
        cout << p->inf << "->";
        p = p->next;
    }
    cout << "NULL\n" ;
    return;
}
 
list* deleteElements(list* head, int maxValue)
{
   if(head != NULL)
   {
       if(head->inf > maxValue)
      {
          list* tmp = head->next;
          delete head;
          return deleteElements(tmp, maxValue);  
      }
      list *tmp = head;
      while(tmp->next != NULL)
      {
          if(tmp->next->inf > maxValue)
             tmp->deleteNextElement();   
          else
             tmp = tmp->next;
      }
   }
   return head;
}
 
void deleteList(list* head)
{
   if(head != NULL)
   {
       list* tmp = head->next;
       delete head;
       deleteList(tmp);
   }
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    
    int n;
    cout << "введите число элементов списка: ";
    cin >> n;
 
    cout << "Элементы: ";
    list* head = create(n);
 
    print(head);
 
    head = deleteElements(head, 10);  
    print(head);
 
   // тут надо удалить список 
   deleteList(head);
 
    system("pause");
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
23.08.2018, 18:21
C++
1
2
3
4
5
6
7
8
9
10
#include <algorithm>
#include <forward_list>
#include <iostream>
#include <iterator>
 
int main()
{
    std::forward_list<int> fl{std::istream_iterator<int>(std::cin), std::istream_iterator<int>()};
    std::remove_copy_if(fl.begin(), fl.end(), std::ostream_iterator<int>(std::cout, " "), [](const auto x) { return x > 10; });
}
0
0 / 0 / 0
Регистрация: 09.04.2018
Сообщений: 8
24.08.2018, 17:26  [ТС]
AndreiUshakov, Огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2018, 17:26
Помогаю со студенческими работами здесь

Вывести на экран все числа которые больше некоторого заданного числа и удалить их из списка
Создать список целых чисел. Вывести на экран все числа которые больше некоторого заданного числа и удалить их из списка. Помогите...

Удалить из исходного массива все элементы, модуль которых больше 1
Пользователь задаёт массив типа double, требуется сформировать новый массив, в котором числа идут в том же порядке, но удалить из...

Удалить из массива все элементы, целая часть которых больше k
Дан массив из n действительных чисел. С клавиатуры вводится число k. Удалить из массива все элементы, целая часть которых больше k....

Удалить все элементы списка, содержащие числа большие, чем среднее значение элементов списка
Сформировать список из N целочисленных случайных элементов (N – вводится пользователем, значения элементов выбирать из диапазона от 0 до...

Удалить из нее все элементы, значение которых больше среднего арифметического
Задание: Дана последовательность х1...х20. Удалить из нее все элементы, значение которых больше среднего арифметического. int main() ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru