#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;
}
배열을 사용하여 스택 구현을 만들려고했습니다. 루프에서 문제가 발생했습니다. 프로그램이 실행되고 선택 사항을 묻는 메시지가 표시되면 해당 기능을 수행하고 수행 한 후 main()으로 돌아와야합니다.C 배열 스택 구현
그러나 어떤 문제가있어 어떤 기능도 수행하지 않고 루프를 다시 시작합니다.
방법을 학습하십시오 프로그램을 디버깅하려면 : 디버거를 사용하거나 단순히 여기 저기에'printf'를 두어 행동이나 프로그램을 관찰하십시오. SO의 도움말 텍스트를 읽으십시오. –
어떤 기능을 수행하지 않는다는 것을 어떻게 알 수 있습니까? – Degustaf