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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 14:09   #1
persalena
 
Регистрация: 06.12.2008
Сообщений: 8
По умолчанию Стек и меню программы (С++)

Вот текст программы. Почему-то пропускается оператор printf(выделен)
и еще как бы сделать так, чтобы после выбора желаемого действия и выполнения соответствующей процедуры, снова можно было выбрать действие? Т. е. ,например, сначала создать стек, потом положить туда элемент, потом забрать.
Код:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>


struct sstack
  {
  char elem[10];
  int top;
  };

int create (sstack *a)//создать стек
  {
  a->top= -1;
  return 1;
  }
int vstack (sstack *b, char *x)//положить элемент в стек
  {
  if(b->top!=9)
    {
    b->elem[b->top]=*x;
    b->top++;
    return 1;
    }
  return 0;
  }
int izstacka (sstack *c, char *x)// взять элемент из стека
  {
  if(c->top!=-1)
    {
    *x=c->elem[c->top];
    c->top--;
    return 1;
    }
  return 0;
  }

int puststack (sstack *d)// проверить пуст ли стек
  {
  if (d->top==-1)
  return 1;
  return 0;
  }
void sodergimoe(sstack *e)// вывести содержимое стека на экран
{
	while(e->top!=-1)
	       {printf("%c",e->elem[e->top]);
               (e->top)--;
               }
}





void main()
{
	sstack mass;
	int k,l;
	char x,s;
	printf("choose variant: \n 1.create stack \n 2.instack \n 3.outstack \n 4.empty stack \n ");
	scanf("%i", &l);
	 	switch(l)
{case 1:
	{
		k=create (&mass);
		printf("%i",k);

	break;
        }
case 2:
	{      
		printf("enter symbol");
		scanf("%c", &x);
		k=vstack(&mass, &x);
		printf("%i", k);
	}
	break;
case 3:
	{
		k=izstacka (&mass, &x);
		printf("%i ; element: %c", k,x);
	}
	break;
case 4:
	{
		k=puststack (&mass);
		printf("%i",k);
	}
	break;
}

printf ("Jelaete vivesti soderjimoe na ekran?\n Y or N? ");
scanf("%c",&s);
if(s=='Y') sodergimoe(&mass);
getch();
}

Последний раз редактировалось rpy3uH; 23.03.2009 в 07:58.
persalena вне форума Ответить с цитированием
Старый 22.03.2009, 22:36   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Как вариант, можно так
Код:
l=-1;
while(l!=0)
{
  printf("choose variant: 1.create stack; 2.instack; 3.outstack; 4.empty stack; 0.end\n");
  scanf("%i", &l);
  switch(l)
  {case 1:
 	k=create (&mass);
	printf("%i",k);
	break;
   case 2:
	printf("enter symbol ");//
	x = getche();
	k=vstack(&mass, &x);
	printf("%i", k);
	break;
   case 3:
	k=izstacka (&mass, &x);
	printf("%i ; element: %c", k,x);
	break;
   case 4:
 	k=puststack (&mass);
 	printf("%i",k);
	break;	
   }
}
Svetlag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29
Меню Пуск->Программы Котовский Общие вопросы Delphi 5 26.01.2009 12:52
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20
Стек Еленка Помощь студентам 2 06.06.2008 18:58
Стек Foky Паскаль, Turbo Pascal, PascalABC.NET 8 13.05.2008 18:39