Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Code đảo ngược xâu dùng stack bị mắc lỗi chỗ nào?

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    9

    Thumbs down Code đảo ngược xâu dùng stack bị mắc lỗi chỗ nào?

    Code:
    #include<stdio.h>
    #include<string.h>
    typedef int eltype;
    typedef struct {
    eltype storage[50];
      int top;
    }stacktype;
    void initialize(stacktype *stack)
    {
      (*stack).top=0;
    }
    int empty(stacktype stack)
    {
      return stack.top==0;
    }
    int full(stacktype stack)
    {
    	return stack.top == 50;
    }
    void push(eltype el, stacktype *stack)
    {
    	if (full(*stack))
    		printf("stack tran");
    	else(*stack).storage[(*stack).top++] = el;
    }
    eltype pop(stacktype *stack)
    {
      return (*stack).storage[--(*stack).top];
    }
    main()
    {
      stacktype stack;
      eltype *el;
      el=(eltype*)malloc(sizeof(eltype));
      initialize(&stack);
      int i,n;
      printf("nhap vao so :");
      gets(el);
      for(i=0;i<strlen(el);i++){
      push(el[i],&stack);
      }
        printf("gia tri da nhap:\n");
        while(!empty(stack)){
        printf("%d",pop(&stack));
        printf("%d \n",n);}
        free(el);
        getch();
    }
    mình mắc lỗi chỗ nào vậy các bạn>...

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    C Code:
    1. printf("nhap vao so :");
    2. gets(el);
    gets làm hàm nhập 1 chuỗi, bạn lại truyền nguyên mảng eltype vô nên trình biên dịch báo lỗi. Mình ko hiểu chỗ đó bạn định làm gì nên cũng ko sửa được luôn.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    08 2011
    Nơi ở
    /pentest
    Bài viết
    44

    C Code:
    1. #include<stdio.h>
    2. #include<string.h>
    3. typedef int eltype;     // sai: phải là typedef char type; vì ở hàm main bạn dùng gets để lấy chuỗi
    4. typedef struct {
    5. eltype storage[50];
    6.   int top;
    7. }stacktype;
    8. void initialize(stacktype *stack)
    9. {
    10.   (*stack).top=0;
    11. }
    12. int empty(stacktype stack)
    13. {
    14.   return stack.top==0;
    15. }
    16. int full(stacktype stack)
    17. {
    18.     return stack.top == 50;
    19. }
    20. void push(eltype el, stacktype *stack)
    21. {
    22.     if (full(*stack))
    23.         printf("stack tran");
    24.     else(*stack).storage[(*stack).top++] = el;
    25. }
    26. eltype pop(stacktype *stack)
    27. {
    28.   return (*stack).storage[--(*stack).top];
    29. }
    30. main()
    31. {
    32.   stacktype stack;
    33.   eltype *el;
    34.   el=(eltype*)malloc(sizeof(eltype));
    35.   initialize(&stack);
    36.   int i,n;
    37.   printf("nhap vao so :");
    38.   gets(el);
    39.   for(i=0;i<strlen(el);i++){
    40.   push(el[i],&stack);
    41.   }
    42.   printf("gia tri da nhap:\n");
    43.   while(!empty(stack)){
    44.   printf("%d",pop(&stack)); // %d -> %c
    45.   // printf("%d \n",n);    không nhập n nên in n ra ở đây làm chi vậy?
    46.   }
    47.   free(el);
    48.   getch();
    49. }

    Bài chỉ là sai chỗ typedef int .
    Đã được chỉnh sửa lần cuối bởi meterpreter : 25-09-2011 lúc 09:21 PM.

  4. #4
    Ngày gia nhập
    03 2011
    Bài viết
    9

    Bài chỉ là sai chỗ typedef int .[/QUOTE]

    đúng cái chỗ sai này rồi thank u

Các đề tài tương tự

  1. code bài chuyển biểu thức từ trung sang hậu tố-Dùng Stack
    Gửi bởi Loveanygirls trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 16-02-2012, 02:48 PM
  2. Lỗi không pop được các giá trị trong 1 đoạn code cộng 2 số lớn dùng stack. Giúp mình sửa với?
    Gửi bởi QUOC HUNG trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 03-11-2011, 09:10 PM
  3. sai code chuyển hệ 10 sang hệ 16 dùng stack
    Gửi bởi quangbinhit trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 4
    Bài viết cuối: 28-09-2011, 10:04 AM
  4. Bài tập C Cộng hai số cực lớn,dùng stack.cần sửa code!
    Gửi bởi manta trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 27-09-2011, 10:37 PM
  5. Code về stack | Chuyển hệ số 10 sang 2 dùng stack
    Gửi bởi ahappyboy89 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 17-04-2009, 09:48 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn