109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
1

Увеличить значения всех элементов стека на n

03.11.2014, 00:35. Показов 2481. Ответов 2
Метки нет (Все метки)

Дан stack<int> x;
Как увеличить значения всех элементов стека на n?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2014, 00:35
Ответы с готовыми решениями:

Определить, сколько элементов стека имеют значения меньше среднего значения от всех элементов и удалить их
Доброго времени суток! Задача: Создать стек из целых случайных чисел и определить, сколько...

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

Создать стек, содержащий только числа большие среднего значения всех элементов первого стека
Основная цель: Создать стек с числами в диапазоне от –50 до +50.После создания стека выполнить...

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

2
1456 / 793 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
03.11.2014, 00:52 2
Лучший ответ Сообщение было отмечено Romalei как решение

Решение

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
template <typename T>
void print_stack(std::stack<T> st, std::ostream& os = std::cout)
{
   while (!st.empty()) {
      os << st.top() << " ";
      st.pop();
   }
   os << std::endl;
}
 
template <typename T>
std::stack<T> increase(std::stack<T> st, T&& val)
{
   std::stack<T> result;
   while (!st.empty())
   {
      result.push(st.top() + val);
      st.pop();
   }
   return result;
}
 
int main()
{
   std::stack<int> st({1,2,3,4,5});
   auto res = increase(st, 10);
   print_stack(res);
 
}
0
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
03.11.2014, 16:37  [ТС] 3
Написал такой код:
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
#include <iostream>
#include <stack>
#include <conio.h>
using namespace std;
 
void PrintStack(stack<int> x)
{
    while (!x.empty())
    {
        cout<< x.top() <<endl;
        x.pop();
    }
 
}
 
int Sum(stack<int> x)
{
    int sum = 0;
    while (!x.empty())
    {
        sum += x.top();
        x.pop();
    }
    return (sum);
}
 
int Max(stack<int> x)
{
    if (x.empty())
        return (0);
    else
    {
        int max = x.top();
        while (!x.empty())
        {
            x.pop();
            if (x.top() > max) 
                max = x.top();
        }
        return (max);
    }
}
 
stack<int> Inc(stack<int> x)
{
    stack<int> t;
    int max = Max(x);
    while (!x.empty())
    {
        t.push(x.top() + max);
        x.pop();
    }
    return (t);
}
 
void main()
{
setlocale(LC_ALL,"Russian");
stack<int> S; 
char number; int value;
do
{
system("cls");
cout<<"1. Добавить элемент"<<endl;
cout<<"2. Удалить элемент"<<endl;
cout<<"3. Вывести стек"<<endl;
cout<<"4. Подсчет суммы элементов"<<endl;
cout<<"5. Увеличить значения элементов на MAX"<<endl;
cout<<"0. Выйти"<<endl;
cout<<">"; cin>>number;
switch (number)
{
    case '1': //добавление элемента
    system("cls");
    cout<<"Значение > "; cin>>value;
    S.push(value);
    break;
 
    case '2': //удаление элемента
        system("cls");
        if (S.empty()==true) cout<<"Стек пуст";
        else
        {
            printf("Элемент %d удален из стека", S.top());
            S.pop(); 
        }
        _getch();
    break;
 
    case '3': //вывод стека
        system("cls");
        if (S.empty()==true) cout<<"Стек пуст";
        else PrintStack(S);
        _getch();
    break;
    
    case '4': //подсчет суммы
        system("cls");
        cout<<"Сумма элементов = "<<Sum(S);
        _getch();
    break;
    
    case '5':
        system("cls");
        if (S.empty())
            printf("Стек пуст");
        else 
            S = Inc(S);
        _getch();
    break;
 
    case '0': break; //выход
    default: 
            system("cls");
            cout<<endl<<"Ошибка";
            _getch();
    break;
    }
} while(number!='0');
}
Выдает ошибку при выполнении 5-го пункта
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2014, 16:37
Помогаю со студенческими работами здесь

Определить, сколько элементов стека имеют значения меньше среднего значения от всех элементов
Доброго времени суток! Задача: Создать стек из целых случайных чисел и определить, сколько...

Увеличить значения всех элементов массива
1.В одномерном массиве хранится информация о сопротивлении каждого из 20 элементов элекирической...

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

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


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

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

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