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

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

Войти
Регистрация
Восстановить пароль
 
Programemrok
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 13
#1

Стек (найти ошибку в коде) - C++

20.09.2013, 04:38. Просмотров 384. Ответов 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
 
int infa;
struct tstk 
 {  int    inf; 
    tstk *a;  }   *sp;
 
 
 
int menu();
void Create() ;
tstk *AddStask(tstk *spt, int inf) ;
tstk *DelStackAll(tstk *spt) ;
void viev(tstk *p);
int kol_em(tstk *p);
 
 
 
 
 
    int main() 
{ 
while (true) 
{
 switch (menu())
{
 case 1: Create();    break;
 case 2: {puts("vvedite element"); cin>>infa; sp=AddStask(sp,infa); } ;  break;
 case 3: viev(sp) ;  break;
 case 4: sp=DelStackAll(sp); break;
  case 5: kol_em(sp);    break;
  case 6: return 0;
    default: "Viberite pravilno!";
}
 puts("Press any key to continue"); 
 getch();      system("cls"); 
} 
} 
 
int menu() // 
{
    system("cls");;
 cout << "VIBERITE:" << endl;
 cout << "1. Sozdat stek" << endl;
 cout << "1. dobavit element" << endl;
 cout << "2. Prosmotret stek" << endl;
 cout << "3. Udalit stak" << endl;
 cout << "4. Vucheslit kolichestvo elementov mezdu min i max" << endl;
 cout << "5. Exit" << endl;
 int i;
 cin >> i;
 return i;
}
 
 
 
 
 
 
//
 
tstk *AddStask(tstk *sp, int inf)  
{   tstk *spt=new tstk;
    spt->inf = inf;
    spt->a = sp;
 return spt;  }
 
 
 
tstk *DelStackAll(tstk *sp) 
{    tstk *spt; int inf;
  while(sp != NULL)    {
    spt = sp;
     inf= sp->inf;
      cout << inf << endl;
     sp = sp->a;
   delete spt;            }
 return NULL;   }
 
 
 
 
 
 
 
 
 
void Create() //
{
    int ch;
    puts("vvedite chislo elementov");
    cin >> ch;
    if(sp!=NULL)
        puts("stek uze soderzut elementu");else{
    for(int i=0;i<ch;i++)
        sp=AddStask(sp,rand()%100-50);}
}
void viev(tstk *p)// 
{
    while(p!=NULL)
    {
        cout<< p->inf <<" "<<endl;
        p=p->a;
    } 
}
 
int kol_em(tstk *p) /// думаю проблема тут
{
    int i,max,imax,min,imin,n=0;
    int *ham; if(p==NULL){puts("stack pust"); getch; return 0;}
    while(p!=NULL)
    {
        p=p->a;
        n++;
    }
    ham=new int(n);
    p=sp;
    min=23453;
    max=-23434;
    for(i=0;i<n;i++)
    {
        ham[i]=p->inf;
        p=p->a;
        if(min>ham[i]) {min=ham[i]; imin=i;}
        if(max<ham[i]) {max=ham[i]; imax=i;}
    }
    cout<< "kolihestvo elementov mezdu min i max ="<<abs(imax-imin)<<" "<< max<<" "<<min    <<" "<< imax<<" "<<imin<<endl;
return 1;
}
Миниатюры
Стек (найти ошибку в коде)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2013, 04:38     Стек (найти ошибку в коде)
Посмотрите здесь:

Динамические структуры. Стек (помогите найти ошибку) - C++
помогите найти ошибку. Есть задание: построить стек, элементами которого являются слова текста,которые считываются из текстового файла....

Найти ошибку в коде - C++
Не вижу ошибку, кофе видимо плох) #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main () { float pi=3.14151926; int...

Найти ошибку в коде - C++
#include &lt;iostream&gt; //Подключаем библиотеки #include &lt;iomanip&gt; #include &lt;windows.h&gt; #include &lt;fstream&gt; # include &lt;conio.h&gt; ...

Найти ошибку в коде - C++
помогите написать программу. есть код, но в нем ошибка, сама не разберусь какая а)a=(j-5.5)(i-3.2)(i-7.4) б)В качестве компонент...

Найти ошибку в коде - C++
программка не работает что не хватает выручайте плиз!! #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class student...

Найти ошибку в коде - C++
надо ввести равные стороны 3-ка #include &lt;iostream&gt; using namespace std; int main() { float side1 , side2 , side3; ...

Найти ошибку в коде - C++
Ребят , есть массив , но сколько бы чисел я не вводил , ОТРИЦАТЕЛЬНЫХ нету . Как исправить ? #include &quot;stdafx.h&quot; #include...

Найти ошибку в коде - C++
Я нуб, всех тонкостей не знаю, тапками не кидайте. Вот код: int i = 0; if (i = 0) cout &lt;&lt; &quot;OK&quot;; else cout &lt;&lt; &quot;WTF???&quot;; ...

Найти ошибку в коде - C++
Скажите, пожалуйста, в чем у меня ошибка? Вот код #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;locale&gt; #include &lt;conio.h&gt; ...

Найти ошибку в коде - C++
У меня стоит задача, в массиве из 10 чисел, который задается двумя способами, выполнить два способа сортировки: выбором и распределением по...

Найти ошибку в коде - C++
Помогите пж. найти ошибку в коде. Проверка на ошибки в мат выражениях. Примеры без ошибок: 4+3+(234+3)+2 3+21 45 Примеры с...

найти ошибку в коде - C++
Помогите найти ошибку в коде: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;conio.h&gt; using namespace std; float y; int a,b; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,051
Записей в блоге: 3
Завершенные тесты: 1
20.09.2013, 07:39     Стек (найти ошибку в коде) #2
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым
и зачем вам стек вообще?
Что касается кода, то форматирование хромает, утечки памяти присутствуют, и даже без всего этого код по сути имеет UB
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,729
20.09.2013, 08:09     Стек (найти ошибку в коде) #3
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек,
Цитата Сообщение от Programemrok Посмотреть сообщение
struct tstk
*{ *int * *inf;
* * tstk *a; *} * *sp;
а где методы push pop?

Добавлено через 2 минуты
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым,
ты со списком не попутал?
в стеке, а равно в очереди, не определяется количество элементов
в стеке "Последний пришел, первый ушел"
в очереди "Первый пришел, первый ушел"
Ответ Создать тему
Опции темы

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