Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误消息:预期标识符或‘;(’;在‘;之前&&&&’;标记,而整个程序是否正确编写?_C_Stack_Token - Fatal编程技术网

C 错误消息:预期标识符或‘;(’;在‘;之前&&&&’;标记,而整个程序是否正确编写?

C 错误消息:预期标识符或‘;(’;在‘;之前&&&&’;标记,而整个程序是否正确编写?,c,stack,token,C,Stack,Token,您好,我在执行程序时遇到一个错误。 根据我的说法,这个程序完全正确,但在gcc编译器上运行时,显示了一条错误消息。 请看一下代码 #include<stdio.h> #define MAXSIZE 5 { int stk[MAXSIZE]; int top; }; typedef struct stack STACK; STACK s; void push(void); int pop(void); void display(void); void main() {

您好,我在执行程序时遇到一个错误。 根据我的说法,这个程序完全正确,但在gcc编译器上运行时,显示了一条错误消息。 请看一下代码

#include<stdio.h>
#define MAXSIZE 5
{
    int stk[MAXSIZE];
    int top;
};
typedef struct stack STACK;
STACK s;

void push(void);
int pop(void);
void display(void);
void main()
{
    int choice;
    int option=1;
    s.top=-1;

    while(option)
    {
        printf("___________________________________\n");
        printf("1-->PUSH\n");
        printf("2-->POP\n");
        printf("3-->DISPLAY\n");
        printf("4-->EXIT\n");
        printf("____________________________________\n");
        printf("Enter your choice");
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:push();
                   break;
            case 2:pop();
                   break;
            case 3:display();
                   break;
            case 4:return;
        }
    printf("Do you want to continue(type 0 or 1)?\n");
    scanf("%d",&option);
    }
}
#包括
#定义最大尺寸5
{
int stk[MAXSIZE];
int top;
};
typedef结构堆栈;
堆栈s;
无效推送(void);
int pop(无效);
作废显示(作废);
void main()
{
智力选择;
int选项=1;
s、 top=-1;
while(选项)
{
printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”);
printf(“1-->推送\n”);
printf(“2-->弹出\n”);
printf(“3-->显示\n”);
printf(“4-->退出\n”);
printf(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuun”);
printf(“输入您的选择”);
scanf(“%d”,选择(&C);
开关(选择)
{
案例1:推送();
打破
案例2:pop();
打破
案例3:显示();
打破
案例4:返回;
}
printf(“是否要继续(键入0或1)?\n”);
scanf(“%d”,选项(&O);
}
}
编译器在“{”标记之前显示预期的标识符或“(”。这是什么意思?
告诉我可能的解决方案。

您应该将堆栈声明为

struct stack <--- missed it
{
    int stk[MAXSIZE];
     int top;
};

struct stack您应该这样编写您的结构

typedef struct stack
{
    int stk[MAXSIZE];
    int top;
}STACK;
STACK s;

代码中缺少
struct
数据类型和结构名称

{
    int stk[MAXSIZE];
    int top;
};
它应该

struct stack
{
    int stk[MAXSIZE];
    int top;
};
还可以将其定义为
typedef struct
并删除行
typedef struct stack;


您似乎“意外”删除了一行:
struct stack
紧接着
#define MAXSIZE 5
一句忠告:如果编译后的报告代码中有语法错误,不要告诉所有人您的代码“完全正确”.Compiler很少出错。此外,错误发生在编译时,而不是在执行过程中。
执行时,我在下面的程序中遇到错误。
No。您在编译时遇到错误。
main()
必须返回
int
而不是
void
typedef struct
{
    int stk[MAXSIZE];
    int top;
}STACK;

STACK s;