C/C++知识点之利用栈实现进制转换
小标 2019-04-01 来源 : 阅读 2732 评论 0

摘要:本文主要向大家介绍了C/C++知识点之利用栈实现进制转换,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之利用栈实现进制转换,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之利用栈实现进制转换

#include<stdio.h>#include<malloc.h>#define MAX_STACK_SIZE 10//静态栈向量大小 #define ERROR   0#define OK      1typedef int ElemType;typedef int Status;/*
栈的应用:
进制转换
*/typedef struct sqstack{
    ElemType stack_array[MAX_STACK_SIZE];//  int size;    int top;    int bottom;
}SqStack;//初始化栈void Init_Stack(SqStack *S){
    S->bottom=S->top=0;    printf(""\n初始化栈成功!\n"");
} 

//压栈(元素进栈)  Status push(SqStack *S , ElemType e){    if(S->top >= MAX_STACK_SIZE - 1){        printf(""栈满!\n""); 
        return ERROR;//栈满 
    }    printf(""--------"");    printf(""当前入栈元素:%d\n"",e); 
//  printf(""入栈前S->top==%d\n"",S->top);
    S->top++;//位置自加 //  S->size++;//  printf(""size==%d"",S->size);    printf(""入栈后S->top==%d\n"",S->top);
    S->stack_array[S->top] = e;//元素入栈     return OK;
 } //弹栈(元素出栈) Status pop(SqStack *S , ElemType e){    if(S->top == 0){        return ERROR;//栈空 
    }
    e = S->stack_array[S->top];//先取     printf(""当前应当出栈:%d\n"",e);
    S->top--;//自减 //  S->size--;//  printf(""size==%d"",S->size);    return OK;
 } 

//遍历栈Status StackTravel(SqStack *S){    int e;    int ptr;
    ptr = S->top;    while(ptr > S->bottom){
        e = S->stack_array[ptr];
        ptr--;        printf(""%d"",e);
    }
} 

void conversion(int n , int d){
    SqStack S;//创建栈 
    ElemType k;//欲进栈的元素     int temp = n;//保存n 
    Init_Stack(&S);//初始化栈 //  printf(""--入栈初始:S->top==%d\n"",S.top);    while(n>0){
        k = n % d;//取余 
        push(&S,k);//余数进栈 
        n = n / d;//结果取整 
    }    printf(""将%d转化成%d进制后为:"",temp,d);
    StackTravel(&S);//遍历栈 }int main(){
    conversion(511, 2);
    conversion(512, 2);
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved