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

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

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

Структура, нужно даработать - C++

02.11.2010, 20:57. Просмотров 304. Ответов 2
Метки нет (Все метки)

Программа почти готова, помогите пожалуйста дороботать, заранее спасибо друзья!)))
Вот задание:Создать структуру, реализующую стек целых чисел типа LIFO. Данные структуры: массив стека, указатель на вершину стека. Создать функции: запись в вершину стека, чтение вершины стека.


Вот программа:
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.h>
struct Stack
{
       int V[10];
       int *Ptr;
       };
void vvod (Stack &);
void chtenie (Stack &);
void init (Stack &);
main()
{
      Stack S; int i;
      init (S);
      vvod (S);
      chtenie (S);
      system ("Pause");
      return 0;
}
void init (Stack&strc)
{
     strc.Ptr=&(strc.V[0]);
}
void vvod (Stack&strc)
{
     cout<<"Input Stack Elements"<<endl;
     cin>>strc.V[0];
     strc.Ptr=strc.Ptr+1;
}
void chtenie (Stack&strc)
{
     cout<<"Stack Elements "<<strc.V[0]<<endl;
     strc.Ptr=strc.Ptr-1;
}
Добавлено через 1 минуту
Тут наверно циклы нужно еще вставить?! только у меня не получилось

Добавлено через 10 часов 1 минуту
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
#include<iostream.h>
struct Stack
{
       int V[10];
       int *Ptr;
       };
void init (Stack &);
void vvod (Stack &);
void chtenie (Stack &);
main()
{
      Stack S; int i;
      init (S);
      vvod (S);
      chtenie (S);
      system ("Pause");
      return 0;
}
void init (Stack&strc)
{
     strc.Ptr=&(strc.V[0]);   
}
void vvod (Stack&strc)
{
     for(int i=0;i<=9;i++){
     cout<<"Input Stack Elements"<<endl;
     cin>>strc.V[0];
     strc.Ptr=strc.Ptr++;}
}
void chtenie (Stack&strc)
{
     for(int i=9;i>=0;i--){
     cout<<"Stack Elements "<<strc.V[0]<<endl;
     strc.Ptr=strc.Ptr--;}
}
помогите...
Я продвинулся дальше и она почти почти работает.....но выводятся не все элементы а последний...шо делать???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2010, 20:57     Структура, нужно даработать
Посмотрите здесь:

1) Структура 2) строки нужно Именно на Си, а не на Си++ - C++
1) Даны стоимости двух товаров в рублях и копейках. Найти суммарную стоимость покупки и рассчитать сдачу. 2) Удалить все символы в...

Нужно чуть подправить программы. Массив и структура. - C++
1. Двумерный массив. Вводим количество спортсменов, далее вводим имя для каждого. Для каждого из них рандомно выводятся результаты (6...

Структура: Нужно найти общую массу мужчин - C++
Известен вес и пол каждого из 20 мужчин.Нужно найти их общую массу.Помогите написать программу с помощью структур на языке с++.Данные...

Нужно сделать что бы давало рандомно числа и нужно написать ответ - C++
В командной строке. Тоесть примерно так: Запускаешь программу, показывает числа что выбрались рандомно : 15*3=? После этого...

Когда нужно/не нужно возвращать объект при перегрузке присваивания? - C++
Доброго времени суток! Перегрузка присваивания: class alpha { private: int data; public: alpha() // конструктор без...

структура - C++
вывести список на экран упорядочив по автору а внутри каждого автора по году издания. вот что получилось у меня но выводит неправильно. ...

Структура - C++
Всем привет. Помогите доделать задачу.Вот ее краткое условие:Дана структура учащихся включающая в себя имя и фамилию ученика, номер его...

структура - C++
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; #define n3 struct avtoprice { char marka ; int year,price; }; ...

структура - C++
почему компилятор не одобряет такую запись cout&lt;&lt;&quot;Координаты суммарной точки равны - x &quot;&lt;&lt;p3.x=p2.x+p1.x; cout&lt;&lt; &quot;y&quot;...

структура c++ - C++
Помогите пожалуйста, в условии ошибка , но я не понимаю какая-именно #include&lt;iostream&gt; #include&lt;windows.h&gt; #include&lt;time.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
02.11.2010, 21:06     Структура, нужно даработать #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
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
 
#define STACK_MAX_SIZE 10
typedef int value_type;
 
typedef struct stack {
        value_type data[STACK_MAX_SIZE];
        size_t top;
} stack_t, *pstack_t;
 
stack_t create() {
        stack_t s;
        memset(&s, 0, sizeof(s));
        return s;
}
 
int empty(pstack_t sptr) {
        assert(sptr);
        return sptr->top == 0;
}
 
int full(pstack_t sptr) {
        assert(sptr);
        return sptr->top == STACK_MAX_SIZE;
}
 
int push(pstack_t sptr, value_type value) {
        assert(sptr);
        if(full(sptr)) {
                fprintf(stderr, "stack overflow\n");
                return -1;
        }
 
        sptr->data[(sptr->top)++] = value;
        return 0;
}
 
int pop(pstack_t sptr) {
        assert(sptr);
        if(empty(sptr)) {
                fprintf(stderr, "stack empty\n");
                return -1;
        }
 
        sptr->data[--(sptr->top)] = 0;
        return 0;
}
 
value_type top(pstack_t sptr) {
        assert(sptr);
        if(empty(sptr)) {
                fprintf(stderr, "stack empty\n");
                return 0;
        }
 
        return sptr->data[(sptr->top) - 1];
}
 
 
int main() {
        stack_t s = create();
 
        while(!full(&s)) {
                if(push(&s, rand() % 9) != 0)
                        exit(1);
        }
 
        while(!empty(&s)) {
                printf("%d -> ", top(&s));
                if(pop(&s) != 0)
                        exit(1);
        }
        printf("\b\b\b   \n");
 
        return 0;
}
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
02.11.2010, 21:09     Структура, нужно даработать #3
Вместо
C++
1
cout<<"Stack Elements "<<strc.V[0]<<endl;
Попробуй так:
C++
1
cout<<"Stack Elements "<<strc.V[i]<<endl;
Ответ Создать тему
Опции темы

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