c언어 스택 문자열 거꾸로 출력 질문입니다
<code>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char element;
typedef struct stackNode {
element data;
struct stackNode *link;
}stackNode;
stackNode* top;
void push(element item)
{
stackNode* temp=(stackNode *)malloc(sizeof(stackNode));
temp->data = item;
temp->link = top;
top = temp;
}
element pop()
{
element item;
stackNode* temp=top;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
return 0;
}
else{
item = temp->data;
top = temp->link;
free(temp);
return item;
}
}
void del()
{
stackNode* temp;
if(top == NULL) {
printf("\n\n Stack is empty !\n");
}
else {
temp = top;
top = top->link;
free(temp);
}
}
void printStack()
{
stackNode* p=top;
printf("\n STACK [ ");
while(p){
printf("%c ",p->data);
p = p->link;
}
printf("] ");
}
int main(void)
{
element item[50];
int i=0;
top = NULL;
printf("문자열 입력 : ");
do
{
scanf("%c",&item[i]);
push(item[i]);
i++;
printStack();
}while(item[i] != '\n');
printf("end");
}
</code>
질문 사항입니다.
문자열을 입력한후에 엔터를 누르면 엔터값이 입력되어 do-while 구문이 종료되어야 하지만 종료되지 않습니다
어떤것이 문제인지 모르겠습니다. 결과파일을 이미지 파일에 첨부하여 올립니다 도와주세요.
감사합니다
첨부 | 파일 크기 |
---|---|
오류.jpg | 17.37 KB |
글쎄요...
글쎄요...
댓글 달기