0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
1

Работа со списками: удалить каждый пятый нечетный элемент

14.06.2015, 20:36. Показов 2445. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно удалить каждый 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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
using namespace std;
 
struct list 
{ 
    int number;
    list *next;
    list *pb;
};
 
void main()
{
    if (!pb) return pb;
    int i = 2;
    Elem *prev = pb;
    Elem *p = pb->next;
    while (p)
    {
        if ((i++) % 2 == 0)
        {
            prev->next = p->next;
            delete p;
            p = prev->next;
        };
        else
        {
            prev = p;
            p = p->next;
        }
    }
    return pb;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2015, 20:36
Ответы с готовыми решениями:

Assembler(удалить каждый пятый элемент строки)
Всем доброго времени суток... Дело к сессии и вот осталась одна лаба все никак не могу понять как...

Каждый второй найденный нечетный элемент удалить
Дан одномерный массив, каждый второй найденный нечетный элемент удалить.

Каждый нечетный элемент списка умножить на 2, каждый четный на 3
сначало пытаюсь написать хотя бы проверку на четность и умножение на 3. (defun четность (l) ...

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

6
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
14.06.2015, 20:45 2
Цитата Сообщение от Алинушка Посмотреть сообщение
Что тут не так?
Почти все
0
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
16.06.2015, 09:45  [ТС] 3
спасибо конечно.но что именно?кроме того что разные переменные и т д.я вставила кусок с инета,но вообще не вдуплила что там происходит
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
16.06.2015, 10:55 4
Похоже на правду:
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
/* Задача - удалить каждый пятый элемент списка */
/* Условие - значение элемента нечетное */
#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
 
void display(auto begin, auto end) {
    for_each(begin, end, [](int val){cout << val << " ";});
    cout << endl;
}
 
int main() {
 
    list<int> data(20);
    std::generate(data.begin(), data.end(), []()->int{return rand()%10;});
    display(data.begin(), data.end());
    // Подсчет элементов в данном случае начинается с 1
    int pos = 1;
    auto it = data.begin();
    while( it != data.end() ) {
        if( (*it & 1) && !(pos % 5) ) {
            it = data.erase(it);
            --pos;
        } else {
            ++it;
            ++pos;
        }
    }
    display(data.begin(), data.end());
    
    return 0;
}
Код
Вход:
3 6 7 5 3 5 6 2 9 1 2 7 0 9 3 6 0 6 2 6 
Выход:
3 6 7 5 5 6 2 9 1 2 0 3 6 0 6 2 6
Запустить можно тут
0
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
16.06.2015, 17:02  [ТС] 5
спасибо.но мне бы еще разобраться что тут происходит.

Добавлено через 4 минуты
выдает ошибки в вижуал студио 2013
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
16.06.2015, 17:12 6
Алинушка, скопируйте текст ошибок.
Что именно не понятно? Если непонятны какие-то конкретные моменты - напишите какие, попробуй разъяснить.
Если непонятно вообще ничего из приведённого кода, то можно попробовать попробовать упростить задачу.
Одно уточнение - эту задачу нужно решить, используя только список, или подойдёт другой контейнер\массив?
0
0 / 0 / 0
Регистрация: 14.06.2015
Сообщений: 9
16.06.2015, 19:15  [ТС] 7
только списком.не понимаю как в синтаксисе реализовывать работу со списками
0
16.06.2015, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2015, 19:15
Помогаю со студенческими работами здесь

Как в матрице удалить каждый пятый столбец
Помогите написать программу в VBA,где в матрице убирается каждый 5-ый столбец.

каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS
каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию ...

Каждый четный элемент массива умножить на минимальный элемент, а нечетный на максимальный
В одномерном массиве, состоящем из n целых элементов, каждый четный элемент умножить на минимальный...

Бинарный поиск. В массиве X(К) заменить каждый пятый элемент на ноль
В массиве X(К) заменить каждый пятый элемент на ноль.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru