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

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

Восстановить пароль Регистрация
 
Tea
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 4
02.11.2010, 20:57     Структура, нужно даработать #1
Программа почти готова, помогите пожалуйста дороботать, заранее спасибо друзья!)))
Вот задание:Создать структуру, реализующую стек целых чисел типа 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     Структура, нужно даработать
Посмотрите здесь:

Нужно чуть подправить программы. Массив и структура. C++
1) Структура 2) строки нужно Именно на Си, а не на Си++ C++
C++ структура
C++ Нужно написать програму в которой нужно определить суму двух 2D масивов
даны 2 последовательности в файлах, в двух разных, нужно их обьединить и отсортировать по возрастанию. Но нужно сделать прогу с помошью указателей C++
C++ Нужно сделать что бы давало рандомно числа и нужно написать ответ
Нужно сделать задание по c++! Через 3 часа нужно сдать! C++
Нужно ввести текст, если он больше 80 символов нужно чтоб он переходил на новую строку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 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
 Аватар для 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;
Yandex
Объявления
02.11.2010, 21:09     Структура, нужно даработать
Ответ Создать тему
Опции темы

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