首页 > 代码库 > 把十进制整数转换为r(r=2)进制输出(顺序栈实现)

把十进制整数转换为r(r=2)进制输出(顺序栈实现)

上周的第二个作业补上~~

上周的要求:

1.给出顺序栈的存储结构定义。
2.完成顺序栈的基本操作函数。
1)      初始化顺序栈
2)      实现入栈和出栈操作
3)      实现取栈顶元素和判空操作
把十进制整数转换为r(r=2)进制输出
3.编写主函数实现基本操作函数功能,并设置测试数据,测试合法和非法数据的输出结果。
4.程序调试运行并保存输出结果。
5.整理并提交实验作业。
 1 #include <cstdio> 2 #include <cstring> 3 #define Stack_Size 50 4  5 typedef struct  6 { 7     int ll[Stack_Size]; 8     int top; 9 }SeqStack;10 11 int IsEmpty(SeqStack *S)//栈判空12 {13     return S->top == -1;14 }15 16 void Push(SeqStack * S,int x)//进栈17 {18     S->top++;19     S->ll[S->top]=x;20 }21 22 void Pop(SeqStack * S,int *x)//出栈23 {24     *x=S->ll[S->top];25     S->top--;26 }27 28 void InitStack(SeqStack * S)//初始化顺序栈29 {30     S->top = -1;31 }32 33 34 void zhuanhuan(int a)35 {36     SeqStack S;37     InitStack(&S);38     int kk;39     while(a){40         kk=a%2;41         Push(&S,kk);42         a=a/2;43     }44     while(IsEmpty(&S)==0){45         int x;46         Pop(&S,&x);47         printf("%d",x);48     }49     printf("\n");50 51 }52 53 int main()54 {55     printf("欢迎使用!本程序将十进制转换成二进制\n");56     printf("请输入一个十进制数\n");57     int a;58     scanf("%d",&a);59     zhuanhuan(a);60 61     return 0;62 }

 

把十进制整数转换为r(r=2)进制输出(顺序栈实现)