Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
31 / 56 / 13
Регистрация: 26.05.2011
Сообщений: 756
1

найти max и min в стеке

19.06.2013, 12:32. Просмотров 833. Ответов 5
Метки нет (Все метки)

Всем привет. Подскажите пожалуйста, как найти max и min в стеке
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 <stack>
#include <cstdlib>
#include <ctime>
  
using namespace std;
  
template <typename T>
void print_stack(std::stack<T> &s)
{
    if (!s.empty()) {
        T top = s.top();
        s.pop();
        cout << top << endl;
        print_stack(s);
        s.push(top);
    }
}
  
int main()
{
    srand(time(0));
  
    stack<int> st;
     
    double max = 50.0, min = -50.0;
     
    for (size_t i = 0; i != 100; i++)
        st.push( (max - min) * ( (double)rand() / (double)RAND_MAX ) + min );
  
    print_stack(st);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2013, 12:32
Ответы с готовыми решениями:

Найти max и min, если min левее max, то среднее арифметическое между ними
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() {...

Найти min(max(x, y), max(x, z), max(z, d)
Даны различные действительные числа x, y, z, d. Найти min(max(x, y), max(x, z), max(z, d)).

Найти max {min (a, b), min (c, d)}.
Найти max {min (a, b), min (c, d)}.

Найти min/max
Проходит 95%, где ошибка? Я не совсем уверена в этом if(n&gt;1) printf(&quot;%d %d&quot;,min,max); Иван...

5
Грамотный. Безпорно.
16787 / 9683 / 1869
Регистрация: 27.09.2012
Сообщений: 24,031
Записей в блоге: 2
19.06.2013, 12:39 2
Извлекайте все элементы из стека по очереди и ищите максимум и минимум. Только вот в стеке уже ничего не будет после окончания.
0
1450 / 787 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.06.2013, 12:58 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
#include <iostream>
#include <stack>
#include <vector>
#include <algorithm>
#include <windows.h>
 
template <typename T>
void print_stack(std::stack<T> st)
{
   while (!st.empty())
   {
      std::cout<<st.top()<<" ";
      st.pop();
   }
   std::cout<<std::endl;
}
 
template <typename T>
std::pair<const T, const T> minmax_elem(std::stack<T> st)
{
   std::vector<T> v;
   
   while (!st.empty())
   {
      v.push_back(st.top());
      st.pop();
   }
   auto min_max = std::minmax_element(v.begin(), v.end());
   return std::make_pair(*min_max.first, *min_max.second);
}
 
int main()
{
   SetConsoleCP (1251); SetConsoleOutputCP (1251);
   
   std::stack<int> stck{std::stack<int>::container_type{10,2,33,4,8,14,2,0,9,14,3}};
   print_stack(stck);
   
   auto min_max = minmax_elem<int>(stck);
   std::cout<<"min: "<<min_max.first<<"\nmax: "<<min_max.second<<'\n';
 
   std::cout<<'\n';
   return 0;
}
0
31 / 56 / 13
Регистрация: 26.05.2011
Сообщений: 756
19.06.2013, 13:18  [ТС] 4
Цитата Сообщение от Croessmah Посмотреть сообщение
Только вот в стеке уже ничего не будет после окончания.
а чего в стеке уже ничего не будет?
0
620 / 474 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
19.06.2013, 13:19 5
DiffEreD, у вас это работает?
0
1450 / 787 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.06.2013, 13:23 6
работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2013, 13:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти z=min{x,y}+max{xy,x+y}
найти z=min{x,y}+max{xy,x+y} Заранее благодерн

Найти y=max(a,b,c,d)*min(a,b,c,d)
Нужно использовать функции

Найти min, max, avg
N чисел, min, max, avg: с клавиатуры ввести N чисел, признаком окончания ввода считать ввод -1;...

Найти min и max матрицы
Допоможіть розвязати задачу на С++.Задана квадратна матриця А=(Aij)i=1,...4;j=1,...4.Знайти min i...


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

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

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