把十进制整数转换为r(r=2)进制输出(顺序栈实现)
上周的第二个作业补上~~
上周的要求:
1.给出顺序栈的存储结构定义。
2.完成顺序栈的基本操作函数。
1) 初始化顺序栈
2) 实现入栈和出栈操作
3) 实现取栈顶元素和判空操作
把十进制整数转换为r(r=2)进制输出
3.编写主函数实现基本操作函数功能,并设置测试数据,测试合法和非法数据的输出结果。
4.程序调试运行并保存输出结果。
5.整理并提交实验作业。
#include <cstdio> #include <cstring> #define Stack_Size 50 typedef struct { int ll[Stack_Size]; int top; }SeqStack; int IsEmpty(SeqStack *S)//栈判空 { return S->top == -1; } void Push(SeqStack * S,int x)//进栈 { S->top++; S->ll[S->top]=x; } void Pop(SeqStack * S,int *x)//出栈 { *x=S->ll[S->top]; S->top--; } void InitStack(SeqStack * S)//初始化顺序栈 { S->top = -1; } void zhuanhuan(int a) { SeqStack S; InitStack(&S); int kk; while(a){ kk=a%2; Push(&S,kk); a=a/2; } while(IsEmpty(&S)==0){ int x; Pop(&S,&x); printf("%d",x); } printf("\n"); } int main() { printf("欢迎使用!本程序将十进制转换成二进制\n"); printf("请输入一个十进制数\n"); int a; scanf("%d",&a); zhuanhuan(a); return 0; }