c代码

时间:2017-01-25 17:15:16

标签: c

当我在菜单中选择推送,然后我输入一些数字值,然后程序工作正常,但当我输入一些字母值,然后程序永远不会停止,我的错误在哪里? 我是c的初学者,所以也许有人可以帮助解决这个问题。 我有这段代码:

#include <stdio.h>
#include <curses.h>

int a[15], top = -1;

void push (int value)
{
    if (top == 14)
    {
        printf("Stack is full");
    }
    else{
        top = top + 1;
        a[top] = value;
    }
}

void pop()
{
    if (top == -1)
    {
        printf("Stack is empty");
    }
    else
    {
        top = top - 1;
    }
}


void display()
{
    int i;
    if (top == -1)
    {
        printf("\n Nothing to display");
    }
    else
    {
        printf("\nArray is:\n");
        for (i=0; i<=top; i++)
        {
            printf("%d\n", a[i]);
        }
    }
}


int main()
{
    int choice, value;
    do{
        printf("\n1.Push :");
        printf("\n2.POP :");
        printf("\n3.Display :");
        printf("\n4.Exit :");
        printf("\nEnter your Choice:");
        scanf("%d", &choice);

        if(choice == 1)
        {
            printf("\nEnter Value to be inserted: ");
            scanf("%d", &value);
            push(value);
        }

        if(choice == 2)
        {
            pop();
        }

        if (choice == 3)
        {
            display();
        }

    }
    while (choice !=4);
    getch();

    return 0;
}

1 个答案:

答案 0 :(得分:1)

您需要更改两件事才能使代码正常工作。首先将以下变量更改为字符

char a[15];
char value;

另外你还需要将一个字符传递给函数而不是整数。