栈的应用1——十进制转换任何进制
来源:互联网 发布:黑龙江科技大学网络课 编辑:程序博客网 时间:2024/06/02 00:20
//十进制的转换问题
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct List
{
char date;
struct List *next;
}NODE,*LNode;
typedef struct
{
LNode top;
int date;//计数器用来计数
}Stack,*SeqStack;
SeqStack init_satck();//初始化
int empty_stack(SeqStack);
void push_stack(SeqStack,char);
void pop_stack(SeqStack,char*);
void change(SeqStack,int,int);
char fun(int);//将int转换为char
int main(void)
{
int m,n;
SeqStack ps=init_satck();
printf("请输入十进制数:");
scanf("%d",&m);
printf("请输入转换的进制:");
scanf("%d",&n);
change(ps,m,n);
return 0;
}
SeqStack init_satck()
{
SeqStack ps;
if((ps=(SeqStack)malloc(sizeof(Stack)))==NULL)
{
printf("动态内存分配失败!\n");
exit(-1);
}
else
{
ps->top=NULL;
ps->date=0;
}
return ps;
}
int empty_stack(SeqStack ps)
{
if(ps->top==NULL)
return 0;
else
return 1;
}
void push_stack(SeqStack ps,char ch)
{
LNode p=(LNode)malloc(sizeof(NODE));
p->date=ch;
p->next=ps->top;
ps->top=p;//就是变相的一个头插法
ps->date++;//个数加一
return ;
}
void pop_stack(SeqStack ps,char *ch)
{
LNode p=ps->top;
*ch=p->date;
ps->top=p->next;
free(p);
ps->date--;
}
char fun(int val)
{
char ch;
if(val>9)
{
ch=val-10+'A';
}
else
ch=val+'0';
return ch;
}
void change(SeqStack ps,int m,int n)
{
char ch;
printf("转换为:");
while(m)
{
push_stack(ps,fun(m%n));//此时我们压栈的字符。而fun函数就是将int转换为char行
m/=n;
}
while(empty_stack(ps))
{
pop_stack(ps,&ch);
printf(" %c",ch);
}
printf("\n");
return ;
}
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct List
{
char date;
struct List *next;
}NODE,*LNode;
typedef struct
{
LNode top;
int date;//计数器用来计数
}Stack,*SeqStack;
SeqStack init_satck();//初始化
int empty_stack(SeqStack);
void push_stack(SeqStack,char);
void pop_stack(SeqStack,char*);
void change(SeqStack,int,int);
char fun(int);//将int转换为char
int main(void)
{
int m,n;
SeqStack ps=init_satck();
printf("请输入十进制数:");
scanf("%d",&m);
printf("请输入转换的进制:");
scanf("%d",&n);
change(ps,m,n);
return 0;
}
SeqStack init_satck()
{
SeqStack ps;
if((ps=(SeqStack)malloc(sizeof(Stack)))==NULL)
{
printf("动态内存分配失败!\n");
exit(-1);
}
else
{
ps->top=NULL;
ps->date=0;
}
return ps;
}
int empty_stack(SeqStack ps)
{
if(ps->top==NULL)
return 0;
else
return 1;
}
void push_stack(SeqStack ps,char ch)
{
LNode p=(LNode)malloc(sizeof(NODE));
p->date=ch;
p->next=ps->top;
ps->top=p;//就是变相的一个头插法
ps->date++;//个数加一
return ;
}
void pop_stack(SeqStack ps,char *ch)
{
LNode p=ps->top;
*ch=p->date;
ps->top=p->next;
free(p);
ps->date--;
}
char fun(int val)
{
char ch;
if(val>9)
{
ch=val-10+'A';
}
else
ch=val+'0';
return ch;
}
void change(SeqStack ps,int m,int n)
{
char ch;
printf("转换为:");
while(m)
{
push_stack(ps,fun(m%n));//此时我们压栈的字符。而fun函数就是将int转换为char行
m/=n;
}
while(empty_stack(ps))
{
pop_stack(ps,&ch);
printf(" %c",ch);
}
printf("\n");
return ;
}
0 0
- 栈的应用1——十进制转换任何进制
- 任何进制转换成十进制
- 十进制转换为任何进制
- 完全正确的十进制转换其他任何进制,朋友帮我改的
- 将十进制的数转换为任何进制的数
- 数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
- 数据结构的应用——使用栈实现十进制到其他(2、8、16)进制的转换
- 把十进制的数字转为任何进制
- 十进制数任意转换2-9进制数——栈的应用
- 顺序栈的定义以及应用:十进制与八进制的转换、十进制与十六进制的转换
- 栈的应用——十进制数转其他进制
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- 十六—十进制转换
- 用栈实现十进制到任意进制的转换
- 十进制与其他进制的转换
- 十进制到n进制的转换
- 十进制与任意进制的转换
- 十进制和任意进制的转换
- 推荐系统-小入个门
- hdu1007 Quoit Design(最近点对模板题)
- MongoDB数据库的基本操作(二)
- C++_STL_algorithm(算法)
- c++继承知识总结
- 栈的应用1——十进制转换任何进制
- C语言开发流程
- 微小宝中实际支出是如何计算的?
- 求1-100之间9的个数
- 内核启动流程2——C语言部分
- ExcuteScalar的使用
- 栈的应用2--括号匹配问题
- servlet和jsp的转发与重定向代码以及区别
- css3 旋转效果