편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2017.05.10

    c언어 스택 문자열 거꾸로 출력 질문합니다


    #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");
      }
    

    문자열을 입력한후에 스택에 넣은후 거꾸로 출력하는 코드입니다. 문자열을 입력한후 엔터를 누르면 do-while 구문이 종료되고 엔드라는 프린트가 나와야하는데 엔터값이 입력이 됩니다 scanf를 getchar로 바꿔도 똑같이 반응하네요이미지

    예를 들어 hello를 입력한 후에 엔터를 누르면 사진을 보시는것과 같이 엔터값이 입력되고 end가 나오지않네요 어떡해 해결해야할지 모르겠습니다. 도와주세요!!!

  • 프로필 정영훈님의 편집
    날짜2017.05.07

    c언어 스택 문자열 거꾸로 출력 질문합니다


    #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");
      }
    

    문자열을 입력한후에 스택에 넣은후 거꾸로 출력하는 코드입니다. 문자열을 입력한후 엔터를 누르면 do-while 구문이 종료되고 엔드라는 프린트가 나와야하는데 엔터값이 입력이 됩니다 scanf를 getchar로 바꿔도 똑같이 반응하네요이미지

    예를 들어 hello를 입력한 후에 엔터를 누르면 사진을 보시는것과 같이 엔터값이 입력되고 end가 나오지않네요 어떡해 해결해야할지 모르겠습니다. 도와주세요!!!

  • 프로필 알 수 없는 사용자님의 편집
    날짜2017.05.07

    c언어 스택 문자열 거꾸로 출력 질문합니다


    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");
    

    }

    문자열을 입력한후에 스택에 넣은후 거꾸로 출력하는 코드입니다. 문자열을 입력한후 엔터를 누르면 do-while 구문이 종료되고 엔드라는 프린트가 나와야하는데 엔터값이 입력이 됩니다 scanf를 getchar로 바꿔도 똑같이 반응하네요이미지

    예를 들어 hello를 입력한 후에 엔터를 누르면 사진을 보시는것과 같이 엔터값이 입력되고 end가 나오지않네요 어떡해 해결해야할지 모르겠습니다. 도와주세요!!!