為什么我在嘗試使用push and pop功能時(shí)會(huì)出錯(cuò)?

這個(gè)問(wèn)題要求我們“通過(guò)完成調(diào)用push函數(shù)至少三次的主函數(shù)來(lái)編寫程序,然后打印出更新的堆棧,然后調(diào)用pop函數(shù)并打印出更新的堆棧again.”

代碼告訴我編譯失敗的原因如下:第10行|{對(duì)我來(lái)說(shuō)沒(méi)有意義。我試圖刪除它,但它會(huì)產(chǎn)生其他錯(cuò)誤

此外,代碼給出了一個(gè)警告:“警告:數(shù)組‘stack’假定有一個(gè)元素”,我不知道這是什么意思。

以下是代碼:

#include <stdio.h>
#define STACK_EMPTY '0'
#define STACK_SIZE 20

char stack[], item;
int *top, max_size;

void
push(char stack[], char item, int *top, int  max_size),
{
     if (*top < max_size-1) 
     {
         --(*top);
         stack[*top] = item;
     }
}

char
pop (char stack[],    /* input/output - the stack */
    int *top)        /* input/output - pointer to top of stack */
{
    char item;       /* value popped off the stack */

    if (*top >= 0) 
    {
        item = stack[*top];
        --(*top);
    } 
    else 
    {
         item = STACK_EMPTY;
    }

    return (item);
}

int
main (void)
{
   char s [STACK_SIZE];
   int s_top = -1; // stack is empty

   if (*top <= -1)
{
    item = STACK_EMPTY;
}
   return (0);
}
? 最佳回答:

問(wèn)題在于如何處理頂部指針。您遞減指針,即--top,而不是它所指向的值。此外,push應(yīng)該增加它,即++top。

---Here是正確的代碼----


#include <stdio.h>
#define STACK_SIZE 20
#define STACK_EMPTY '0'

char item;
int top_idx = 0;

void
push(char *stack, char item)
{
     if (top_idx < STACK_SIZE) 
     {
        stack[top_idx] = item;
        top_idx++;
     }
}

char
pop (char *stack)        /* input/output - pointer to top of stack */
{
    char item;       /* value popped off the stack */

    if (top_idx >= 0) 
    {
        top_idx--;
        item = stack[top_idx];        
    } 
    else 
    {
         item = STACK_EMPTY;
    }

    return (item);
}

int
main (void)
{
   char s [STACK_SIZE];

   push(s,'a');
   push(s,'b');

   printf("Pop = %c \n",pop(s));
   printf("Pop = %c \n",pop(s));
   
   

   return 0;
}
主站蜘蛛池模板: 国产精品无码一区二区在线| 日本内射精品一区二区视频 | 国产一区二区三区精品视频| 五十路熟女人妻一区二区| 高清一区二区在线观看| 日韩国产精品无码一区二区三区| 精品亚洲AV无码一区二区三区 | 国内精品视频一区二区三区八戒| 亚洲一区二区三区久久久久| 精品一区二区高清在线观看| 日韩视频一区二区| 精品国产一区二区三区2021| 国产精品av一区二区三区不卡蜜| 国产福利电影一区二区三区,日韩伦理电影在线福 | 免费一区二区无码视频在线播放 | 国产激情一区二区三区成人91| 在线精品亚洲一区二区小说| 99久久精品午夜一区二区| 亚洲第一区二区快射影院| 久久se精品一区二区影院| 一级毛片完整版免费播放一区| 色老头在线一区二区三区| 一区二区三区久久精品| 无码国产精品一区二区免费虚拟VR| 日本在线视频一区二区| 日韩电影一区二区| 在线观看日韩一区| 亚洲日韩中文字幕一区| 在线视频一区二区三区三区不卡| 国产一区二区三区在线| 亚洲国产AV无码一区二区三区| 搡老熟女老女人一区二区| 精品国产一区二区22| 日本一区二区三区在线视频| 国产一区二区三区小向美奈子| eeuss鲁片一区二区三区| 亚洲一区二区观看播放| 欧美亚洲精品一区二区| 中文字幕乱码一区久久麻豆樱花| 国产精品制服丝袜一区| 精品熟人妻一区二区三区四区不卡|