Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2010, 13:14   #1
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
Сообщение недостающая функция (стек)

Трабл: создать функцию, которая бы выводила каждый 5-ый элемент стека.
вот мой стек:
Код:
struct stack{
        char c;
        stack *next;
}*p,*top;
 
void push(void);
void pop(void);
void show(void);
 
int main()
{
        top=NULL;
        char key;
        int done=false;
        while(!done)
        {
                system("cls");
                show();
                printf("\nA)dd\nD)elete\nQ)uit\n");
                key=getchar();
                switch(toupper(key))
                {
                case 'A':
                        push();
                        break;
                case 'D':
                        pop();
                        break;
                case 'Q':
                        done=true;
                        break;
                }
        }
        return 0;
}
void push()
{
        printf("\nInput:\n");
        p=new stack;
        scanf("%s",&p->c);
        p->next=top;
        top=p;
}
void pop()
{
        p=top;
        if(top!=NULL) 
        top=top->next;
        delete p;
}
void show()
{
        p=top;
        if(top==NULL)
        printf("\nStack is empty\n");
        else
        printf("\n Stack:\n");
        while(p)
        {
        printf("%c\n",p->c);
        p=p->next;
        }
}
zhenya.ya вне форума Ответить с цитированием
Старый 23.04.2010, 15:21   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а в чем проблема? в функции show заводим счетчик и каждый пятый выводим...
counter вне форума Ответить с цитированием
Старый 23.04.2010, 20:52   #3
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

(как-то мозг не варит уже)
Что у меня не так? в чем ошибка

Код:
struct stack{
        char c;
        stack *next;
}*p,*top;
 
void push(void);
void pop(void);
void show(void);

 int count=0;

int main()
{
        top=NULL;
        char key;
        int done=false;
        while(!done)
        {
                system("cls");
                show();
				if(count%2==0)
				show();
                printf("\nA)dd\nD)elete\nQ)uit\n");
                key=getchar();
                switch(toupper(key))
                {
                case 'A':
                        push();
                        break;
                case 'D':
                        pop();
                        break;
                case 'Q':
                        done=true;
                        break;
                }
				
        }
        return 0;
}
void push()
{
        printf("\nInput:\n");
        p=new stack;
        scanf("%s",&p->c);
        p->next=top;
        top=p;
}
void pop()
{
        p=top;
        if(top!=NULL) 
        top=top->next;
        delete p;
}
void show()
{
        p=top;
        if(top==NULL)
        printf("\nStack is empty\n");
        else
        printf("\n Stack:\n");
        while(p)
        {
        printf("%c\n",p->c);
        p=p->next;
        }
		count++;
}
zhenya.ya вне форума Ответить с цитированием
Старый 23.04.2010, 20:56   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
void show()
{
        int c=1;
        p=top;
        if(top==NULL)
        printf("\nStack is empty\n");
        else
        printf("\n Stack:\n");
        while(p)
        {
               if(c%5==0)
                   printf("%c\n",p->c);
             p=p->next;
             c++;
        }
}
counter вне форума Ответить с цитированием
Старый 24.04.2010, 17:47   #5
zhenya.ya
Форумчанин
 
Регистрация: 29.11.2009
Сообщений: 142
По умолчанию

огромное спасибо
zhenya.ya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
стек. Nelson1992 Фриланс 2 16.02.2010 00:28
Стек lucky Паскаль, Turbo Pascal, PascalABC.NET 2 12.05.2009 18:35
СТЕК KORT Фриланс 3 08.09.2008 23:38
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50