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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
#1

Найти максимальный элемент стека и поменять его местами с первым элементом - C++

14.05.2012, 19:53. Просмотров 1702. Ответов 3
Метки нет (Все метки)

Информационное поле элемента стека числовое. Найти максимальный элемент стека и поменять его местами с первым элементом стека.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 19:53     Найти максимальный элемент стека и поменять его местами с первым элементом
Посмотрите здесь:

C++ Определить минимал элемент и поменять его местами с первым элементом
C++ В массиве из 6 целых чисел найти наибольший элемент и поменять его местами с первым элементом массива
В массиве из 25 действительных чисел найти наименьший элемент и поменять его местами с первым элементом(Borland C++) C++
C++ Задача (язык С + +). В массиве из 25 действительных чисел найти наименьший элемент и поменять его местами с первым элементом
Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом C++
C++ Найти максимальный элемент и поменять его с первым элементом
Поменять местами минимальный элемент с первым элементом массива, а максимальный элемент с последним C++
C++ Найти максимальный элемент и поменять его местами со вторым элементом массива
Найти первый максимальный элемент и поменять его местами с последним элементом массива C++
Поменять местами максимальный элемент матрицы с его первым элементом а минимальный с последним C++
Найти максимальный по модулю элемент матрицы и поменять его местами с определенным элементом C++
Найти максимальный по абсолютной величине элемент и поменять его местами с последним элементом матрицы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikolay_it
5 / 5 / 0
Регистрация: 08.05.2012
Сообщений: 15
14.05.2012, 20:19     Найти максимальный элемент стека и поменять его местами с первым элементом #2
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
//---------------------------------------------------------------------------
 
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
struct stack {
   int val;
   stack *next;
} *begin;
 
stack *s_add(int);
void s_task();
void s_view();
void s_create();
void s_del();
 
int main(int argc, char* argv[])
{
        while(true){
         cout << "\tChoose:\n 1 - Create\n 2 - Add\n 3 - View\n 4 - Task\n 5 - Delete" << endl;
         int l;
         cin >> l;
         if(cin.rdbuf()->in_avail()!=1 || cin.fail())
          {
         string buf;
             l=-1;
             cin.clear();
              if(cin.rdbuf()->in_avail() != 1)  cin >> buf;
          }
          int value;
         switch(l) {
          case 0:   exit(0); break;
          case 1:       s_create(); break;
          case 2:       cout << "Input value" << endl;
                        cin >> value;
                        s_add(value);
                        break;
          case 3:       if (begin == NULL)  cout << "Stack is empty" << endl; else
                        s_view(); break;
          case 4:      s_task();
                        break;
          case 5: s_del(); break;
          default: cout << "Incorrect, try again" << endl;
         }
        }
        return 0;
}
//---------------------------------------------------------------------------
 
stack *s_add(int val)
{
 stack *temp = new stack;
 temp->val = val;
 temp->next = begin;
 begin = temp;
 return temp;
}
 
void s_task()
{
 if(begin==NULL)
 {
        cout << "Stack is empty" << endl;
        return ;
 }
        stack *t = begin->next, *_first = begin, *_max = begin;
        int temp;
        while(t != NULL)
        {
            if(t->val > _max->val) _max = t;
            t = t->next;
        }
        temp = _max->val;
        _max->val = _first->val;
        _first->val = temp;
}
 
void s_view()
{
   stack *temp = begin;
   cout << "\nView:" << endl;
   while(temp != NULL)
      {
          cout << temp->val << endl;
          temp = temp->next;
      }
}
 
void s_create()
{
   randomize();
   int t = random(5)+3, i;
   for(i=0; i<t; i++)
      s_add(random(15)-6);
}
 
void s_del()
{
 stack *temp = begin;
 while(begin != NULL)
  {
     temp = begin;
     begin = begin->next;
     delete temp;
  }
}
Если что-то не так - пиши...
strag 93
1 / 1 / 0
Регистрация: 14.11.2010
Сообщений: 57
14.05.2012, 23:46  [ТС]     Найти максимальный элемент стека и поменять его местами с первым элементом #3
говорит что Begin не однозначный и randomize не определен

Добавлено через 14 минут
Цитата Сообщение от Nikolay_it Посмотреть сообщение
>>
жалуеться на эти скобки, типа нет индентификатора

Добавлено через 51 секунду
Цитата Сообщение от Nikolay_it Посмотреть сообщение
randomize(); int t = random(5)+3, i;
Тут жалоба на рандомайз и рандом
Nikolay_it
5 / 5 / 0
Регистрация: 08.05.2012
Сообщений: 15
15.05.2012, 00:34     Найти максимальный элемент стека и поменять его местами с первым элементом #4
Писал в билдере.
В VC++ функция генерации случайных чисел - rand();
Насчет cout, не понял чего-то ошибки оО.
#include <iostream> написан?
Ибо у меня билдер не новый и по старым стандартам .h приписано

Добавлено через 5 минут
забыл про пространство ...

using namespace std;
Yandex
Объявления
15.05.2012, 00:34     Найти максимальный элемент стека и поменять его местами с первым элементом
Ответ Создать тему
Опции темы

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