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

Нужно изменить функцию чтоб она удаляла не положительные элементы, а отрицательные

11.11.2018, 16:58. Показов 336. Ответов 1
Метки нет (Все метки)

Здравствуйте. Помогите пожалуйста , нужно изменить функцию чтоб она удаляла не отрицательные элементы а положительные (с++)
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
#include "pch.h"
#include <iostream>
 
using namespace std;
 
struct node
{
int info;
node *link;
};
 
class List
{
protected:
node *head; // Указатель на начало списка
node *tail; // Указатель на конец списка
public:
List();
~List();
void fillingList(int);
void searchNegative();
void elementRemove(node*, node*);
void outputList();
};
 
List::List()
{
head = NULL;
tail = NULL;
}
 
List::~List()
{
node *temp = head; // Временный указатель на начало списка
while (temp != NULL)
{
temp = head->link;
delete head;
head = temp;
}
}
 
void List::fillingList(int n)
{
int number;
 
for (int i = 0; i < n; i++)
{
node *temp = new node; // Выделение памяти
cin >> number;
temp->info = number; // Временное запоминание принятого числа
temp->link = NULL; // Указание, что следующее звено новосозданной структуры пока пустое
 
if (head != NULL) // Если список не пуст
{
tail->link = temp; // Указание, что следующее звено списка это новосозданная структура
tail = temp;
}
else
{
head = tail = temp; // Если список не пуст, добавление первого элемента
}
}
}
 
void List::searchNegative()
{
node *temp = head; // Временный указатель на начало списка
node *prev = temp;
while (temp != NULL) // Пока в списке что-то встречается
{
if (temp->info < 0)
{
node* ptrToNext = temp->link; //added
elementRemove(temp, prev);
temp = ptrToNext; //added
continue;
}
prev = temp;
temp = temp->link; // Сдвигаем указатель на начало на адрес следующего элемента
}
}
 
void List::elementRemove(node *temp, node *prev)
{
if (temp == head)
{
head = temp->link;
delete temp;
}
else
if (temp == tail)
{
tail = prev;
delete temp;
}
else
{
//prev = temp->link;
prev->link = temp->link; // added
delete temp;
//temp = prev;
}
}
 
void List:utputList()
{
node *temp = head; // Временный указатель на начало списка
while (temp != NULL) // Пока в списке что-то встречается
{
cout << temp->info << " "; // Выводим значения из списка на экран
temp = temp->link; // Сдвигаем указатель на начало на адрес следующего элемента
}
cout << endl;
}
 
int main() {
setlocale(LC_ALL, "russian");
system("color F0");
 
int n;
 
List queue;
 
cout << "Введите кол-во элементов списка: ";
cin >> n;
cout << "Введите числа: ";
queue.fillingList(n);
 
queue.searchNegative();
 
queue.outputList();
 
system("pause");
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2018, 16:58
Ответы с готовыми решениями:

Как изменить функцию чтоб она удаляла не отрицательные элементы , а положительные?
Всем доброго времени суток! Помогите пожалуйста , нужно изменить функцию чтоб она удаляла не...

Изменить все отрицательные элементы массива на положительные
Набрать программу, которая изменяет все отрицательные элементы массива на положительные.

Разместить элементы массива так,чтоб сначала шли все положительные числа,а потом-отрицательные, не создавая новый массив
Дан массив из n целых чисел. Не используя новый массив, нужно разместить элементы массива так,...

Как переделать программу,чтобы она удаляла четные элементы?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include...

1
Модератор
Эксперт С++
12117 / 9785 / 5913
Регистрация: 18.12.2011
Сообщений: 26,257
11.11.2018, 18:45 2
Цитата Сообщение от XakProg Посмотреть сообщение
if (temp->info < 0)
Неужели это так непреодолимо - поменять в этой строке знак < на знак > ?
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2018, 18:45
Помогаю со студенческими работами здесь

Нужно найти положительные и отрицательные элементы массива
Дана матрица размера MxN.Найти номер первой ее строки, которая имеет ровное количество...

Написать функцию f(a,n), определяющую , чередуются ли положительные и отрицательные элементы
Написать функцию f(a,n), определяющую , чередуются ли положительные и отрицательные элементы...

В массиве нужно положительные элементы умножить на k, а отрицательные разделить на 2
Вобщем в массиве нужно положительные элементы умножить на k, а отрицательные разделить на 2. И при...

Изменить массив, чтобы сначала располагались все отрицательные элементы, затем положительные, а потом нули
Нужно решение задачи по СИ: Изменить порядок следования элементов в массиве так, чтобы сначала...

Нужно поместить сначала положительные элементы массива Z в массив R, потом отрицательные
Здравствуйте. Такое задание: &quot;Нужно поместить сначала положительные элементы массива Z в массив R,...

Изменить введенный массив, поставив сначала все отрицательные элементы, затем нулевые, затем положительные
Помогите решить задачу


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

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

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