Sau một hồi loay hoay k in đc các phần từ của stack ra màn hình, hóa ra là vì d = -255. Các pro cho em hỏi tại sao d nó lại = -255 vậy, và repair kiểu gì ạ
#include<conio.h>
#include<stdio.h>
#define max 20
// stack
struct stack
{
int d;
char mang[max];
};
void khoitao(stack &st)
{
st.d=-1;
}
int full(stack st)
{
return (st.d==max-1);
}
int rong(stack st)
{
return (st.d==-1);
}
int them(stack &st, char them)
{
if(full(st))
{
printf("Full, k them dc");
}
else
{
st.mang[++(st.d)] = them;
}
}
int xoa(stack &st, char xoa)
{
if(rong(st))
{
printf("Rong, k co gi de xoa");
}
else
{
xoa = st.mang[(st.d)--];
}
}
int show(stack st)
{
}
int main()
{
int i=1;
stack st;
khoitao(st);
char so;
printf("Nhap phan tu cho stack\n");
printf(" = a thi dung nhap\n");
do
{
printf("Phan tu %d = ", i);
scanf("%s", &so);
them(st, so);
i++;
}
while(so != 'a' && i<=max);
if(st.d==-1)
{
printf("\nStack rong");
}
else if(st.d==(max-1))
{
printf("\nStack day");
}
else
printf("\nStack chua day\n");
}
printf("%d", st.d);
getch();
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?