30/09/2018, 16:20

Lỗi Break khi run

Mình có bài này mình làm mà nó bị lỗi Break khi run . coi nó chỉ lỗi thì lại bị hàm POP mình ko biết sửa ai biết chỉ mình

#include<stdio.h>
#include<conio.h>

struct NODE
{
    int Key;
    NODE *pNext;
};
struct STACK
{
    NODE *top;
};

void Khoitao(STACK &s)
{
    s.top = NULL;
}

int  isEmpty ( STACK s )
{
    return  s.top == NULL ? 1 : 0;
}

void  Push( STACK &s,  int  x )
{
    NODE *p = new NODE;
    if ( p==NULL )
    {
        printf("Khong du bo nho");
        return;
    }
    p->Key = x;
    p->pNext = NULL;
    if (s.top==NULL)  	// if (isEmpty(s))
        s.top = p;
    else
    {
        p->pNext = s.top;
        s.top = p;
    }
}

int Pop( STACK &s )
{
    if (s.top==NULL )
    {
        printf("Stack rong");
        return 0;
    }
    int x;
    NODE *p = s.top;
    s.top = s.top->pNext;
    x = p->Key;
    delete p;
    return x;
}

int Top( STACK s )
{
    if ( s.top==NULL )
    {
        printf("Stack rong");
        return 0;
    }
    int x;
    x = s.top->Key;
    return x;
}

int main()
{
    STACK S;
    int n;
    printf("Nhap so thap phan can doi: ");
    scanf_s("%d",&n);
    while (n > 0)
    {
        int dv = n%2;
        Push(S, dv); // push so du vao stack
        n = n/2;
    }

    printf("So da doi sang he 2 la: ");
    while(!isEmpty(S))
    {
        printf("%d",Pop(S));
    }
    return 0;
    getch();
}
Nguyễn Minh Dũng viết 18:24 ngày 30/09/2018

Góp ý là hàm

int  isEmpty ( STACK s )
{
    return  s.top == NULL ? 1 : 0;
}

Chỉ cần viết thế này

int  isEmpty ( STACK s )
{
    return  s.top == NULL;
}
Nguyễn Minh Dũng viết 18:27 ngày 30/09/2018

I moved a post to a new topic: Cách khai báo struct và typedef struct

Bài liên quan
0