admin 管理员组文章数量: 1086019
2024年12月23日发(作者:arm嵌入式系统教程张石)
最后运行结果:
代码:
#include
#include
typedef struct Node
{
int data;
struct Node *next;
}StackNode;
StackNode *top = NULL;
void Push(int e)
{
StackNode *p;
p = (StackNode *)malloc(sizeof(StackNode));
p->data = e;
p->next = top;
top = p;
}
bool IsEmpty()
{
return top == NULL ? true : false;
}
int Pop()
{
StackNode *p;
int e;
if (IsEmpty())
{
printf("The stack is empty, failed to pop!n");
return NULL;
}
p = top;
e = p->data;
top = top->next;
free(p);
return e;
}
void Print()
{
StackNode *p;
p = top;
if (IsEmpty())
{
printf("The stack is empty!n");
return;
}
printf("转换后的结果是:");
while (p)
{
if (p->data<10)
printf("%d ", p->data);
else
{
if (p->data == 10)printf("a");
else if (p->data == 11)printf("b");
else if (p->data == 12)printf("c");
else if (p->data == 13)printf("d");
else if (p->data == 14)printf("e");
else if (p->data == 15)printf("f");
else printf("data is wrong!");
}
p = p->next;
}
printf("n");
}
void main()
{
int m, c, d, n;
printf("请输入要转换的十进制数:");
}
scanf("%d", &m);
printf("n");
printf("请输入转换进制:n");
printf("******************************n");
printf("* 请选择一个你要转换的进制 *n");
printf("* 1.二进制 *n");
printf("* 2.八进制 *n");
printf("* 3.十六进制 *n");
printf("******************************n");
scanf("%d", &d);
printf("n");
if (d == 1)n = 2;
else if (d == 2)n = 8;
else if (d == 3)n = 16;
else printf("输入有误!");
while (m)
{
c = m%n;
m = m / n;
Push(c);
}
Print();
版权声明:本文标题:C语言 链栈 实现十进制转换二进制,八进制,十六进制 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1734991852a1619357.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论