#include<stdio.h>
#include<conio.h>
#include"stdlib.h"
struct node
{
int info;
struct node *next;
};
typedef struct node *Stacknode;
Stacknode S;
void StackLint(Stacknode *S)
{
*S=NULL;
return;
} // khai bao stack = dslk
int StackEmpty(Stacknode S)
{
return (S==NULL);
} // kiem tra stack rong
void StackPush(Stacknode *S,int x)
{
Stacknode p;
p=(Stacknode)malloc(sizeof(struct node));
p->info=x;
p->next=*S;
*S=p;
} // day 1 phan tu vao stack
void StackPop(Stacknode *S,int *x)
{
Stacknode p;
if(S!=NULL)
{
*x=(*S)->info;
p=*S;
*S=(*S)->next;
free(p);
}
} // lay 1 phan tu khoi stack
void doi_10_2(Stacknode *S, int *n)
{
int du, thuong,x;
Stacklint(S);
printf("Nhap so he 10: ");
scanf("%d",n);
thuong=*n;
while(thuong!=0)
{
du=thuong%2;
thuong=thuong/2;
push(S,Newnode(du));
}
printf("he 2 cua so %d la: ", *n);
while(!StackEmpty(S))
printf("%d",pop(S,&x));
}
int main()
{
int i,x;
StackLint(&S);
for(i=0;i<10;i++)
StackPush(&S,i);
while(S!=NULL)
{
StackPop(&S,&x);
printf(" %d ",x);
}
int n;
doi_10_2(&S,&n);
return;
}
Đây là đoạn code về chuyển đổi cơ số từ hệ 10 ra hệ 2 bằng stack! ở trong phần void doi-so 10 2 không biết em bị lỗi gì! Ai giúp em sửa đoạn này với ạ! em cảm ơn!