Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Thắc mắc nguyên lý của đặc tả %i,%d,%x

    Em mới học lập trình, thấy thắc mắc mấy cái %d,%i, và%x.Ví dụ như bài đổi cơ số dưới đây, đúng ra là %x là đúng. nhưng thay bằng %d thì báo lỗi (rõ ràng là số nguyên mà in ra lại báo lỗi), thay bằng %i thì không có lỗi. Mong mọi người giải thích nguyên lý dùm em cái.
    Mã:
    /*đổi cơ số*/
    #include <stdio.h>
    
    #define TRUE 1
    #define FALSE 0
    #define MAXSTACK 100
    
    struct  stack
    {
    	int top;
    	int Nodes[MAXSTACK];
    };
    void Push(struct stack *p,int n);
    int Pop(struct stack *p);
    int Empty(struct stack *p);
    int Full(struct stack *p);
    
    int main()
    {
    	char c;
    	int so,coso,sodu;
    	struct stack s ;
    	s.top =-1;
    		printf("
    Nhap vao so ban muon chuyen");
    		scanf("%d",&so);
    		printf("
    Nhap vao co so");
    		scanf("%d",&coso);
    		while (so!=0)
    		{
    			sodu = so%coso;
    			Push(&s,sodu);
    			so /=coso;
    		}
    		printf("
    So da doi la:");
    		while (!Empty(&s))
    		{
    			printf("%x",Pop(&s)); //thắc mắc ở chỗ này %x  là đùngdc,%i được,%d không dc
    		}
        getchar();
    	return 0;
    }
    int Empty(struct stack *p)
    {
        return p->top == -1?TRUE:FALSE;
    }
    int Full(struct  stack *p)
    {
        return p->top==MAXSTACK -1 ? TRUE: FALSE;
    }
    void Push(struct stack *p,int n)
    {
    	if(Full(p))
    		printf("
    Stack full");
    	else
    		p->Nodes[++(p->top)]=n;
    }
    int Pop(struct stack *p)
    {
    	if(Empty(p))
        {
            printf("
    Stack empty");
        }
    	else
    		return p->Nodes[(p->top)--];
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0
    1. "Báo lỗi" là crash hay in sai?
    2. sizeof(int) = ?

  3. #3
    là in sai bạn à. tùy input mà có trường hợp in sai, trường hợp in đúng.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hàm pop trong trường hợp empty stack thì không trả về giá trị nào => lỗi

    if(Empty(p)) => return 0

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •