Fork me on GitHub

把十进制整数转换为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;
}

 

posted @ 2016-10-23 23:20  Jinkelababy  阅读(1635)  评论(0编辑  收藏  举报