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

Posted 宝宝SAMA的搞笑日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了把十进制整数转换为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)进制输出(顺序栈实现)的主要内容,如果未能解决你的问题,请参考以下文章

进制转换

进制的转换

3H - 进制转换

SDUT 1252 进制转换

HDU 2031 进制转换

HDU_oj_2031 进制转换