#include <stdio.h>
#define DataType char
#define StackSize 10
//定义栈
typedef struct
{
DataType data[StackSize];
int top;
}MyStack;
//初始化栈
void initStack(MyStack *s)
{
s->top=-1;
}
//判断栈空
int stackEmpty(MyStack *s)
{
if(s->top==-1)return 1;
return 0;
}
//判断栈满
int stackFull(MyStack s)
{
//if(s->top==StackSize)return 1;
//return 0;
return s.top>=StackSize-1;
}
//进栈
void pushStack(MyStack *s,DataType key)
{
if(stackFull(*s))
{
printf("栈满\n");return;
}
s->data[++s->top]=key;
}
//出栈
void popStack(MyStack *s)
{
while(!stackEmpty(s))
{
printf("%c ",s->data[s->top]);
s->top = s->top-1;
}
}
//数据进制转换 输入的十进制数 和转换的进制数
void change(int n,int b)
{
MyStack stack;
char c[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
initStack(&stack);
while(n)
{
pushStack(&stack,c[n%b]);
n=n/b;
}
popStack(&stack);
}
void main()
{
int n,b;
scanf("%d %d",&n,&b);
change(n,b);
}
分享到:
相关推荐
C语言-顺序栈实现十进制转换为二进制-八进制-十六进制
此程序是用栈来完成进制的转换,有栈的结构体的构造,该程序是用将十进制任意转换成其他进制,但只限于整数
利用顺序栈将一个非负的十进制整数N转换为对应的B进制数。非负的十进制整数N和B都从键盘输入;转换结果从屏幕输出。
采用C++语言实现利用顺序栈、链栈将10进制数转为2、8、16进制数。 通过本编程实例,可以进一步了解到顺序栈和链栈之间区别和联系,体会两者的异同,进一步加深知识印象,是不错的练习素材哦。
1)顺序栈的实现; 2)十进制数到其它进制数的转换; 3)行编辑程序的设计;
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出。
利用栈实现进制转换 输入一个十进制数 可将它转化成其他进制的数
引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 [Page] 39.启动一个线程是用run()还是start()? 答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机...
*1.1 从C到C++ *1.2 最简单的C++程序 1.3 C++程序的构成和书写形式 1.4 C++程序的编写和实现 1.5 关于C++上机实践 习题 第2章 数据类型与表达式 2.1 C++的数据类型 2.2 常量 2.2.1 什么是常量 2.2.2 ...
*1.1 从C到C++ *1.2 最简单的C++程序 1.3 C++程序的构成和书写形式 1.4 C++程序的编写和实现 1.5 关于C++上机实践 习题 第2章 数据类型与表达式 2.1 C++的数据类型 2.2 常量 2.2.1 什么是常量 2.2.2 ...
cout输出十进制数 输出八进制数 ; //输出十六进制数 return 0; } 从上面也可以看出,dec,oct,hex也不可作为变量的标识符在程序中出现。 五、函数参数问题 (一) 无名的函数形参 声明函数时可以包含一个或多...
7、 编写一个程序,将10进制数转换为其它(2-9)进制数。可以将要转换的数重复除以基数,然后讲除的余数按反方向排列来实现; 8、 已知A[n]为正数数组,试写出实现下列运算的递归算法; a. 求数组A中的...