我是靠谱客的博主 难过大地,最近开发中收集的这篇文章主要介绍数据结构 进制转换(十进制转换为d(2、8、16)进制)C语言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include<stdlib.h>
#include<stdio.h>
#include<stddef.h>
#define MAXSIZE 50

typedef char ElemType;
/*定义栈结构*/
typedef struct 
{ ElemType data[MAXSIZE];
  int top;
}SeqStack,*PSeqStack;

/*初始化栈,构造一个空栈,如果成功,则返回栈的地址*/
PSeqStack Init_SeqStack()
{ PSeqStack s;
  s=(PSeqStack)malloc(sizeof(SeqStack));
  if(s) 
   s->top=-1;
  return s;	
}

/* 判断栈是否为空,如果为空,则返回1,否则返回0*/
int Empty_SeqStack(PSeqStack s)
{if(s->top==-1)
     return 1;
 else
     return 0;
}

/*入栈操作,栈不满时,入栈一个元素,成功返回1,失败返回0*/
int Push_SeqStack(PSeqStack s,ElemType x)
{
if(s->top==MAXSIZE-1 )
      return 0;
else
      {s->top=s->top+1;
       s->data[s->top]=x;
       return 1;
       }
}

/*出栈操作,栈不空时,出栈一个元素,用参数*x保存,成功返回1,失败返回0*/
int Pop_SeqStack(PSeqStack s,ElemType *x)
{
if(Empty_SeqStack(s))
   return 0;
else
  { *x=s->data[s->top];
    s->top=s->top-1;
    return 1;
  }
}

/*取栈顶元素操作,栈不空时,获取栈顶元素,成功返回1,失败返回0*/
int GetTop_SeqStack(PSeqStack s,ElemType *x)
{
 if(Empty_SeqStack(s))
   return 0;
else
   *x=s->data[s->top];
    return 1;
}
/*销毁栈*/
void Destroy_SeqStack(PSeqStack *s)
{
if(*s)
 free(*s);
*s=NULL;
return;     
}

/*十进制转换成r进制(2,8,16)*/
void Conversion(int num,int r)
{ PSeqStack s;
  ElemType x;
  if(!r)
    {
    printf("基数不能为0");
    return;
    }
  s=Init_SeqStack();
  if(!s)
    {
    printf("初始化栈空间失败");   
    return; 
    }
 while(num)
  {if(num%r>9)
     Push_SeqStack(s,num%r+'A'-10);   /*余数大于9,则进栈ABCDEF*/
   else
     Push_SeqStack(s,num%r+'0');   /*余数小于10,则进栈数字字符*/
   num=num/r;
  }
 while(!Empty_SeqStack(s))
 {Pop_SeqStack(s,&x);
  printf("%c",x);
 }
}
int main()
{ int r, num;
printf("请输入要转换的数据");
 scanf("%d",&num);
printf("请输入要转换成几进制:");
scanf("%d",&r);
Conversion(num,r);
//getch();   //非程序一部分,Dev-C++环境要求 
}

资源源自:顺序栈实现将十进制整数转换为r(2、8、16)进制数_zyj_hollowword的博客-CSDN博客_顺序栈实现十进制转换任意进制 

最后

以上就是难过大地为你收集整理的数据结构 进制转换(十进制转换为d(2、8、16)进制)C语言的全部内容,希望文章能够帮你解决数据结构 进制转换(十进制转换为d(2、8、16)进制)C语言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部