索尼与三星 2016-01-02 11:53 采纳率: 33.3%
浏览 1415

手动实现栈出现了程序终止的问题

看到一个题:将一个十进制的数,转换为十六进制输出。要求手动用栈实现。
以下是代码:

#include
#include

struct stack_s
{
int data;
stack_s * next;

};
void init(stack_s *s)
{
s->next = NULL;
}

void push(stack_s s, int e)
{
stack_s *p = (stack_s
)malloc(sizeof(stack_s));
p->data = e;
p->next = s->next;
s->next = p;
}
void pop(stack_s *s)
{
stack_s *p;
p = s->next;
s->next = s->next->next;
free(p);
}
int top(stack_s *s)
{
return s->next->data;
}
bool is_empty(stack_s *s)
{
return s->next == NULL;
}

void convert_print(stack_s *s)
{
while (s)
{
int m = top(s);
pop(s);
if (m < 10)
printf("%d", m);
else
printf("%c", 'A' + m - 10);
}
printf("/n");
}

int main()
{
int n;
scanf_s("%d", &n);
stack_s s;
init(&s);
while (n)
{
push(&s, n % 16);
n /= 16;
}

convert_print(&s);
return 0;

}

结果运行结束后显示:程序已终止。
请问是哪里有问题?谢谢!

  • 写回答

2条回答 默认 最新

  • one_pp 2016-01-02 13:45
    关注

    push(&s, n % 16);这里修改一下,明白不?

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题