gpt4 book ai didi

c - C语言中Stack的数组实现

转载 作者:行者123 更新时间:2023-11-30 20:39:41 25 4
gpt4 key购买 nike

    #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 的实现。我在循环中遇到一些问题。程序运行,它要求选择,并且从 switch case 驱动的菜单中它应该转到该函数,执行它并返回 main()

但是出现了一些问题,它再次开始循环而不执行任何功能

最佳答案

scanf(" Enter choice %d",&choice);

不是编写 scanf() 函数的有效方法。为了在屏幕上显示消息,我们有 puts()printf()scanf() 仅用于获取输入。异常行为解释如下:

scanf() reference

要执行在屏幕上显示消息然后获取用户输入的任务,请将语句重写为:

printf("Enter your choice ");
scanf("%d", &choice);

关于c - C语言中Stack的数组实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com