Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

20.09.2013, 04:38. Просмотров 413. Ответов 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;
}
0
Миниатюры
Стек (найти ошибку в коде)  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2013, 04:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Стек (найти ошибку в коде) (C++):

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

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

Найти ошибку в коде - C++
#include&lt;iostream&gt; #include&lt;ctime&gt; using namespace std; int main(){ const int n=10; const int m=10; int A; for(int...

Найти ошибку в коде - C++
#include&lt;iostream&gt; using namespace std; class samp { int a; public: void set_a(int n) { a=n; }

Найти ошибку в коде - C++
Помогите исправить пожалуйста. #include &lt;stdio.h&gt; #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Найти ошибку в коде - C++
Всем привет! Есть программа, но она некорректно работает, помогите найти ошибку. При вписывании, например: в первую строчку:...

2
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,777
Записей в блоге: 3
Завершенные тесты: 1
20.09.2013, 07:39 #2
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым
и зачем вам стек вообще?
Что касается кода, то форматирование хромает, утечки памяти присутствуют, и даже без всего этого код по сути имеет UB
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
20.09.2013, 08:09 #3
Цитата Сообщение от Programemrok Посмотреть сообщение
создаю стек,
Цитата Сообщение от Programemrok Посмотреть сообщение
struct tstk
*{ *int * *inf;
* * tstk *a; *} * *sp;
а где методы push pop?

Добавлено через 2 минуты
Цитата Сообщение от Programemrok Посмотреть сообщение
вычисляю количество елементов между минимальным и максималым,
ты со списком не попутал?
в стеке, а равно в очереди, не определяется количество элементов
в стеке "Последний пришел, первый ушел"
в очереди "Первый пришел, первый ушел"
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2013, 08:09
Привет! Вот еще темы с ответами:

Найти ошибку в коде - C++
Здравствуйте!!! помогите пожалуйста с кодом...мне нужен C++ вопрос таков...в чем я ошибся, при написании кода? )))

Найти ошибку в коде - C++
Доброго времени суток. Не могу найти ошибку в коде. Задание проще простого, вычеслить функцию. Буду благодарен за любую помощь ...

Найти ошибку в коде - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; using namespace std; void main (void)...

Найти ошибку в коде - C++
В книге Страуструпа есть задание. Сначала нужно создать пустой консольный проект в Visual Studio, затем включить туда файл исходного...


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

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

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