Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 21.05.2012
Сообщений: 39
1

Очередь. Поставить перед каждым отрицательным элемент противоположный ему по значению

24.01.2015, 15:43. Показов 823. Ответов 3
Метки нет (Все метки)

Поставить перед каждым отрицательным элемент противоположный ему по значению.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2015, 15:43
Ответы с готовыми решениями:

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

Перед каждым отрицательным элементом массива вставить нулевой элемент
Вот условие задачи: Задан вещественный массив размера N. Перед каждым отрицательным элементом...

Преобразовать массив, вставив перед каждым отрицательным элементом нулевой элемент
Дан массив размера N. Преобразовать его,вставив перед каждым отрицательным элементом нулевой...

Перед каждым отрицательным элементом списков L1, L2 поместить элемент с нулевым значением
Перед каждым отрицательным элементом списков L1, L2 поместить элемент с нулевым значением.

3
57 / 50 / 38
Регистрация: 22.01.2015
Сообщений: 176
24.01.2015, 17:01 2
Это в массиве, ты имеешь ввиду?
0
26 / 26 / 18
Регистрация: 16.01.2014
Сообщений: 161
24.01.2015, 19:28 3
Добавлено через 1 минуту
Ааа, перед каждым.
Ну тогда просто делается.
Вытаскиваешь элемент, если он отрицательный, вставляешь сначала его, потом его с минусом.
Это ж очередь, все просто)

Добавлено через 18 секунд
И так пока есть элементы делаешь

Добавлено через 1 минуту
Что-то вроде,

C++
1
2
3
4
5
6
7
b = a -> pop();
if(b < 0) {
a -> push(b);
a -> push(-b);
}
else
a -> push(b);
1
0 / 0 / 1
Регистрация: 21.05.2012
Сообщений: 39
25.01.2015, 01:29  [ТС] 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
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
#include <iostream>
#include <fstream> 
using namespace std;
 
template <class item>
class Queue
{
    struct element
    {
        item inf;
        element *next;
        element (item x):inf(x), next(0)
        {
        }
    };
    element *head,*tail;
public:
    Queue():head(0),tail(0)
    {
    }
    bool Empty()
    {
        return head ==0;
    }
    item Get()
    {
        if(Empty())
        {
            throw "QueueException:get-queue empty";
        }
        else
        {
            element *t=head;
            item i=t->inf;
            head=t->next;
            if (head==NULL)
            {
                tail=NULL;
            }
            delete t;
            return i;
        }
    }
 
    void Put(item data)
    {
        element *t=tail;
        tail=new element(data);
        if(!head)
        {
            head=tail;
        }
        else
        {
            t->next=tail;
        }
    }
};
int main() 
{
    Queue <int> t,q;
    int i,k,invers,n;
    ifstream in("input.txt");
    ofstream out("output.txt");
    
    in>>i;
    k=0;
    invers=i;
    t.Put(i);
 
    while(in.peek()!=EOF)
        
    {
        in>>i;
      
        if(i<0) invers=i;
        
        t.Put(i); 
 
    }
    
    while (!t.Empty())
    {   
        n=t.Get();
        if (invers<0) 
        {
        if(n==invers) 
        {
            q.Put(n);
            q.Put(-invers);
        }
        
        else q.Put(n);
        }
    }  
if (invers>0) 
        {
        out<<"нет отрицательного элемента";
}
 
    while (!q.Empty())
    {
        out<<q.Get()<<" ";
    }
    in.close();
    out.close();
    return 0;
}
Вот что получилось, но он заменяет только один отрицательный элемент, не знаю как сделать чтобы все
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2015, 01:29

Преобразовать массив, вставив перед каждым отрицательным элементом нулевой элемент
Дан массив размера N. Преобразовать его, вставив перед каждым отрицательным элементом нулевой...

Массив из 24 чисел, как добавлять в него элемент перед каждым отрицательным числом
Опишите пож-та! Позицию запоминает, а вот как добавить элемент не знаю! При том этот элемент нужно...

Функция, которая вставляет перед каждым отрицательным элементом элемент с нулевым значением
Есть двумерный динамический массив (матрица). Нужно написать функцию, которая вставляет перед...

Вставить в массив по одному элементу перед каждым отрицательным элементом.
Вставить по одному элементу перед каждым отрицательным элементом.


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

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

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