wangchengxi03 2021-04-05 11:10 采纳率: 50%
浏览 45
已采纳

为什么链表能输入但没有输出

#include<stdio.h>
#include<malloc.h>
typedef struct Polynode
{
	int coef;
	int exf;
	struct Polynode *next;}*Polylist;
void Init(Polylist *l)
{
	*l=(Polylist)malloc(sizeof(Polynode));
	(*l)->next=NULL;}
void Creat(Polylist l)
{
	Polynode *r,*s;
	r=l;
	int c,e;
	scanf("%d%d",&c,&e);
	while(c!=0)
	{
		s=(Polynode*)malloc(sizeof(Polynode));
		s->coef=c;s->exf=e;
		s->next=r;
		r=s;
		scanf("%d%d",&c,&e);}
	r->next=NULL;
}
void Printf(Polylist l)
{
	Polynode *p=l->next;
	while(p!=NULL)
	{
		printf("%d %d\n",p->coef,p->exf);
		p=p->next;}
}
int main()
{
	Polylist l;
	Init(&l);
	Creat(l);
	Printf(l);
	return 0;
}

 

  • 写回答

2条回答 默认 最新

  • 小白小白你好菜 2021-04-05 13:18
    关注

    就改了一下你的create函数

    #include<stdio.h>
    #include<malloc.h>
    typedef struct Polynode
    {
    	int coef;
    	int exf;
    	struct Polynode *next;
    }*Polylist;
    
    void Init(Polylist *l)
    {
    	*l =(Polylist)malloc(sizeof(Polynode));
    	(*l)->next = NULL;
    }
    
    void Creat(Polylist l)
    {
    	Polynode *r,*s;
    	r = l;
    	int c,e;
    	scanf("%d%d",&c,&e);
    	while(c != 0)
    	{
    		s = (Polynode*)malloc(sizeof(Polynode));
    		s->coef = c;
    		s->exf = e;
    		s->next = NULL;
    		r->next = s;
    		r = s;
    		scanf("%d%d",&c,&e);
    	}
    }
    
    void Printf(Polylist l)
    {
    	Polynode *p = l->next;
    	while(p != NULL)
    	{
    		printf("%d %d\n", p->coef, p->exf);
    		p = p->next;}
    }
    int main()
    {
    	Polylist l;
    	Init(&l);
    	Creat(l);
    	Printf(l);
    	return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条