#include <stdio.h>
#define MAXSIZE 101
int A[MAXSIZE];
int top=-1;
int data;
void push()
{
printf("Enter a number\n");
scanf(" %d",&data);
if (top==MAXSIZE-1){
printf("Overflow.Array size limit reached\n");
return;
}
A[++top]=data;
}
void pop()
{
if(top==-1){
printf("Empty Stack!\n");
return;
}
top--;
}
int isEmpty()
{
if(top==-1)
{
printf("Empty yes\n");
return 0;
}
}
int first()
{
return A[top];
}
int printStack()
{
int i=0;
for(i=0;i<=top;i++)
{
printf("%d \n",A[i]);
}
return 0;
}
int main(int argc, char const *argv[])
{
int choice;
int flag=1;
do{
printf("The options are\n");
printf("1\t\t Push\n2\t\t Pop\n3\t\t Empty\n4\t\t Top\n5\t\t Print\n\n");
scanf(" Enter choice %d",&choice);
switch(choice)
{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
isEmpty();
break;
case 4:
first();
break;
case 5:
printStack();
break;
default:
printf("Please enter correct menu choice");
}
printf("Wanna repeat again ? Press 1 to repeat 0 to exit\n");
scanf("%d",&flag);
}while(flag);
return 0;
}
Я попытался создать реализацию Stack с использованием массивов. У меня возникают проблемы в цикле. Программа запускается, она запрашивает выбор и из меню с переключаемым корпусом, она должна перейти к этой функции, выполнить ее и вернуться к основному()Реализация массива стека в C
Но есть некоторые проблемы, и он снова запускает цикл без каких-либо функций.
Пожалуйста узнать, как для отладки вашей программы: используйте отладчик или просто запустите, поставив 'printf' здесь и там, чтобы наблюдать за поведением или вашей программой. Прочтите текст справки SO. –
Как вы знаете, что он не выполняет никаких функций? – Degustaf