과제는 아니고 책에 있는거 그대로 베껴서 공부중인데
3
2
1
나와야하는데 왜 이렇게 나올까요 ㅠ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <stdio.h> #include <stdlib.h> #define MAX 100 typedef int element; element stack[MAX]; int top = -1; int is_empty() { return (top == -1); } int is_full() { return (top == (MAX - 1)); } void push(element item) { if (is_full) { printf("스택 포화 에러\n"); return; } else { stack[top++] = item; } } element pop() { if (is_empty()) { printf("스택 공백 에러\n"); return; } else { stack[top--]; } } void peak() { if (is_empty) { printf("스택 공백 에러\n"); return; } else { return stack[top]; } } int main(void) { push(1); push(2); push(3); printf("%d", pop()); printf("%d", pop()); printf("%d", pop()); } | cs |
bool로바꿔
그게 문제인가요 ?
stack[top++]가 아니라 stack[++top] 인거 아님?
아 그렇네요 근데 수정해도 결과는 안바뀌는데 뭐가 문제일가요 ㅠ
해당 댓글은 삭제되었습니다.
그거는 책에 있는거 그대로 보고 따라쳤는데 풀함수, 엠티함수가 문제인건가요 ?
아 !!!!! 맞네요 왤케 바보같은지 ㅠ 감사합니다
스택이 전역변수로 돼있어서 컴파일 자체에는 초기화가 필요없긴 하다만 그래도 쓰레기값으로 채워져있을 수 있으니 스택 초기화를 한번 해보는게 - dc App
아하 - dc App
가 아니라 0으로 다 채워져있는거니까 null로 초기화해줘야되는거 아녀? - dc App
pop에는 리턴문이 없음
따라치는것도 못하노 ¬_¬
아 그 베꼈다기보다는 한번 보고 제가 스스로 한번 구현해본거였거든요 ㅠㅠ 혹시 typedef int element한 이유는 뭔지 알 수 있을까요 ?
그냥 int형이여도 상관 없는데 니가 갑자기 저걸 char로 바꾸고 싶어졌을때 line 6만 수정하면 되서 그럼
6말고 5
아하 감사합니다
18, 36라인 함수뒤에 괄호 해보셉
아 !!!!! 맞네요 왤케 바보같은지 ㅠ 감사합니다
pop에 리턴도 없네
아 !!!!! 맞네요 왤케 바보같은지 ㅠ 감사합니다
알고리즘을 잘못짰나 했는데 그냥 타이핑 미스였군요 감사합니다 ㅠㅠ