0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 13
1

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

20.09.2013, 04:38. Показов 690. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Такая проблема: создаю стек, вычисляю количество елементов между минимальным и максималым, удаляю стек, пытаюсь создать стек по-новой выдаёт ошибку.


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;
}
Миниатюры
Стек (найти ошибку в коде)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2013, 04:38
Ответы с готовыми решениями:

Найти ошибку в коде, реализующем стек
Стек - не работает {borland c++ 7 3.1;type .c} :sorry: #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два...

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

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; ...

2
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
20.09.2013, 07:39 2
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым
и зачем вам стек вообще?
Что касается кода, то форматирование хромает, утечки памяти присутствуют, и даже без всего этого код по сути имеет UB
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,511
20.09.2013, 08:09 3
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек,
Цитата Сообщение от Programemrok Посмотреть сообщение
struct tstk
*{ *int * *inf;
* * tstk *a; *} * *sp;
а где методы push pop?

Добавлено через 2 минуты
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым,
ты со списком не попутал?
в стеке, а равно в очереди, не определяется количество элементов
в стеке "Последний пришел, первый ушел"
в очереди "Первый пришел, первый ушел"
0
20.09.2013, 08:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2013, 08:09
Помогаю со студенческими работами здесь

Помогите найти ошибку в коде. Найти сумму ряда
Добрый день, помогите найти ошибку. Задача: Найти сумму ряда, вычисление ввести до тех пор пока...

Найти ошибку в коде
Дана непустая последовательность слов (не более 30), в каждом слове не более вось-ми строчных...

Найти ошибку в коде

Найти ошибку в коде
procedure TForm1.Button1Click(Sender:TObject); var xn, xk, x, s, h, y, al, del, p, f:...

Найти ошибку в коде
Здравствуйте! В общем вот код: &lt;?php /* Принимаем данные из формы */ ...

Найти ошибку в коде
подскажите где ошибка var a:file of integer; b:file of integer; t,l,k,n,i:integer; begin ...


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

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

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