Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Максим998877766
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 13
#1

Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные - C++

19.06.2016, 14:22. Просмотров 324. Ответов 7
Метки нет (Все метки)

Создать список действительных чисел. Удалить четные элементы списка и перемножить
все положительные нечётные.
начал писать код,но что-то запутался
#include <iostream>
#include <conio.h>
using namespace std;

struct A
{
int key;
};

struct List
{
A a;
List* next;
};
void Print(List *b)
{
List *print = b;
while(print)
{
cout << print->a.key << "-> ";
print = print->next;
}
cout << "NULL\n";
}
void Init(List **begin)
{
*begin = new List;
A a[10]={-5,-4,-3,-2,-1,1,2,3,4,5};
(*begin)->a.key = -6;
(*begin)->next = NULL;
List *end = *begin;

for(int i(0); i<10; i++)
{
end->next =new List;
end = end->next;
end->a = a[i];
end->next = NULL;
if (((*begin)->a.key % 2) == 0 )

}

}



int main()
{
List* begin=NULL;
Init(&begin);


Print (begin);

_getch();
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2016, 14:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные (C++):

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

Создать список из целых чисел. Исключить из списка все элементы, равные х - C++
#include &lt;iostream&gt; #include &quot;list.h&quot; #include &lt;fstream&gt; using namespace std; int main() { ifstream...

Методом вставки упорядочить список по возрастанию и удалить из отсортированного списка положительные элементы - C++
создать односвязный линейный список чисел. Методом вставки упорядочить список по возрастанию и удалить из отсортированного списка все...

Используя библиотеку list описать список из 20 случайных чисел; удалить из списка четные числа - C++
Используя библиотеку list описать список из 20 случайных чисел.удалить из списка четные числа

Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 - C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2. Список L отсортировать в порядке...

Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2 - C++
Сформировать список L, включив в него положительные элементы списка L1 и отрицательные элементы списка L2. Список L отсортировать в порядке...

7
kolya8920
8 / 8 / 2
Регистрация: 14.05.2010
Сообщений: 121
Завершенные тесты: 1
19.06.2016, 15:01 #2
C++ (Qt)
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
const int size = 10;
    int buffer[size] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 
    struct List
    {
        int key = 0;
        List* next = NULL;
    };
 
    List* begin = new List;
 
    for (register int i = 0; i < size; ++i)
    {
        List* end = begin;
 
        while (end->next != NULL)
        {
            end = end->next;
        }
 
        end->key = buffer[i];
        end->next = new List;
    }
    
 
    List* print = begin;
    while (print->next != NULL)
    {
        cout << print->key << " ";
        print = print->next;
    }
Не забудь удаление реализовать, а то получишь утечку памяти.
0
elch10
38 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 168
Завершенные тесты: 2
19.06.2016, 15:04 #3
Цитата Сообщение от kolya8920 Посмотреть сообщение
for (register int i = 0; i < size; ++i)
kolya8920, я конечно всё понимаю, но зачем здесь кидать переменную цикла в регистр?
0
kolya8920
8 / 8 / 2
Регистрация: 14.05.2010
Сообщений: 121
Завершенные тесты: 1
19.06.2016, 15:09 #4
По привычке! Можно и не кидать... Регистровые переменные работают быстрее, особенно в счетчиках.
0
Максим998877766
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 13
19.06.2016, 15:31  [ТС] #5
а можно пояснить код?не могу понять
0
kolya8920
8 / 8 / 2
Регистрация: 14.05.2010
Сообщений: 121
Завершенные тесты: 1
19.06.2016, 15:32 #6
Цитата Сообщение от Максим998877766 Посмотреть сообщение
не могу понять
что конкретно пояснить??
0
Максим998877766
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 13
19.06.2016, 16:08  [ТС] #7
вот этот момент
for (register int i = 0; i < size; ++i)
{
List* end = begin;

while (end->next != NULL)
{
end = end->next;
}

end->key = buffer[i];
end->next = new List;
0
kolya8920
8 / 8 / 2
Регистрация: 14.05.2010
Сообщений: 121
Завершенные тесты: 1
19.06.2016, 16:39 #8
Цитата Сообщение от Максим998877766 Посмотреть сообщение
вот этот момент
заполняем список значениями от 1 до 10 из массива. На каждом проходе находим конец списка (представляет end) и записываем туда очередные данные.

Добавлено через 19 минут
Sorry на скорую руку делал, сейчас заметил косяк. Правильно будет так:
C++ (Qt)
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
List* begin = NULL;
    for (register int i = 0; i < size; ++i)
    {       
        if (begin == NULL)
        {
            begin = new List;
            begin->key = buffer[i];
        }
        else
        {
            List* end = begin;
 
            while (end->next != NULL)
                end = end->next;
        
            end->next = new List;
            end->next->key = buffer[i];
        }
    }
 
    List* print = begin;
    while (print != NULL)
    {
        cout << print->key << " ";
        print = print->next;
    }
Добавлено через 5 минут
Ах да! и удаление динамически выделенной памяти:
C++ (Qt)
1
2
3
4
5
6
7
List* del = begin;
    while (begin != NULL)
    {
        begin = begin->next;
        delete del;
        del = begin;
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2016, 16:39
Привет! Вот еще темы с ответами:

Сформировать список из натуральных чисел. Удалить из списка отрицательные элементы - C++
Помогите 1. Сформировать список из натуральных чисел. Удалить из списка отрицательные элементы. 2. Сформировать список из натуральных...

Удалить все нечётные элементы массива и отсортировать - C++
1. Удалить все нечётные элементы массива #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; void main() { clrscr();...

Создать два списка и все нечетные элементы списков переместить в третий список - C++
как создать 2 однонаправлених списка и все непарные елементи обоих списков переместить в 3? буду очень благодарен за любую помощь

В последовательности действительных чисел a1,a2,...,an есть только положительные и отрицательные элементы - C++
В последовательности действительных чисел a1,a2,...,an есть только положительные и отрицательные элементы. Вычислить произведение...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
19.06.2016, 16:39
Ответ Создать тему
Опции темы

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