kết quả từ 1 tới 2 trên 2

Viết chương trình chuyển từ hệ 10 sang hệ 8 có sử dụng ngăn xếp

  1. #1
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 274548
    Bài gửi
    22
    Quick reply to this message Trả lời       

  2. #2
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 247344
    Giới tính: Nữ
    Bài gửi
    10.192

    Reply: Viết chương trình chuyển từ hệ 10 sang hệ 8 có sử dụng ngăn xếp

    Tham khảo bài này nhe bạn có thể chuyển về hệ số bất kỳ
    Mã:
    #include <stdio.h>
    #include <stdlib.h>
    /*
    */
    typedef struct stack
    {
        int top;
        int *node;
    };
     
     
    void Create(stack *s)
    {
        s->top = -1;
        s->node = NULL;
    }
     
    void Push(stack *s,int x)
    {
        if(s->top==-1)
        {
            s->node = (int*) malloc (sizeof(int));
            s->top = 0;
            s->node[s->top] = x;
            return;
        }
        s->top++;
        s->node = (int*) realloc (s->node,(s->top+1)*sizeof(int));
        s->node[s->top] = x;
    }
     
    int Pop(stack *s)
    {
        if(s->top != -1)
        {
            int x = s->node[s->top];
            s->top--;
            s->node = (int*) realloc (s->node,(s->top+1)*sizeof(int));
            return x;
        }
    }
     
    int main()
    {
        int number,t;
        printf (" - Enter decimal number: ");scanf("%d",&number);
        printf (" - Convert to: ");scanf("%d",&t);
     
        stack s;
        Create(&s);
        while (number)
        {
            Push(&s,number%t);
            number /=t;
        }
        printf(" - Convert to %d number is: ",t);
        while (s.top!=-1) printf("%d",Pop(&s));
        return 0;
    }
    Hoặc code khác với hệ số 8:
    Mã:
    #include <stdio.h>
    #include <conio.h>
    #include <malloc.h>
     
    /* Dinh nghia Stack */
    typedef struct node *stack;
     
    typedef struct node {
        int data;
        stack pre;
    };
    // global: s
    stack s;
     
    // Khoi tao
    stack khoitao() {
        s = (stack) malloc(sizeof(struct node));
        if (s == NULL){
            printf("\n ko du bo nho");
            exit(-1); // -1: Error
                   }
        else
            s->pre = NULL;
     
        return s;
    }
     
    // Kiem tra empty
    int isempty() {
      return (s->pre == NULL);
    }
     
    // Them vao stack: Push
    void push(int e){
       stack tmp;
       tmp = (stack) malloc(sizeof(struct node));
       if (tmp != NULL){
            tmp->data = e;
            tmp->pre = s->pre;
            s->pre = tmp;
        }
    }
     
    // Day khoi stack: Pop
    void pop(int *t){
        stack tmp;
        if (!isempty()) {
           tmp = s->pre;
           *t = tmp->data; // SAI O DAY
           s->pre = tmp->pre;
           free(tmp);
         }
    }
     
    // Chuong trinh chinh
    int main(void) {
        int r,m;
     
        khoitao();
     
        printf("\n nhap so =");scanf("%d",&m);
     
        // push
        while (m >= 1){
            r = m%8;
            push(r);
            printf("%d",r);
            m /= 8;
        }
        printf("\n");
     
        // pop
        while (!isempty()) {
            pop(&r);
            printf("%d",r);
        }
     
        getch();
    }
    Thực sự thì mình chưa thấy ai lại hiền lành, dễ thương và tốt bụng như bạn Khách vậy