Dev c++ 编程 出现停止工作

如题下面是我的代码,刚学线性表,写的很糙,大家多包涵。#include<stdio.h>#include<stdlib.h>typedefstructLnode{intc... 如题
下面是我的代码,刚学线性表,写的很糙,大家多包涵。
#include<stdio.h>
#include<stdlib.h>

typedef struct Lnode
{
int co;
int exp;
struct Lnode *next;
} LNode, *LinkList;

void creat( LinkList, int );
LinkList add( LinkList, LinkList );
void output( LinkList );

int main(void)
{
int func,n1,n2,n3;
LinkList pa, pb, pc, pd, pe;
scanf("%d",&func); //输入功能选择编号,当func为0时退出
if( 1 == func )
{
scanf("%d",&n1);
creat( pa, n1 );
scanf("%d",&n2);
creat( pb, n2 );
scanf("%d",&n3);
creat( pc, n3 );
pd = add( pa, pb );
pe = add( pd, pc );
output( pa );
output( pb );
output( pc );
output( pd );
output( pe );
}
}

void creat( LinkList p, int n) //线性表储存一元多项式
{
int c, e, i;
LinkList first, s, rear;
first = ( LinkList )malloc(sizeof(LNode));
rear = first;
for(i=1;i<=n;i++)
{
s = ( LinkList )malloc(sizeof(LNode));
scanf("%d%d",&c,&e);
s->co = c;
s->exp = e;
rear->next = s;
rear = s;
rear->next = NULL;
}
}

LinkList add( LinkList pa, LinkList pb ) //两个多项式相加
{
LinkList first, c, rear;
first = ( LinkList )malloc(sizeof(LNode));
rear = first;
rear->next = NULL;
pa = pa->next;
pb = pb->next;
while(pa&&pb)
{
if( pa->exp == pb->exp ) //指数相同时
{
c = ( LinkList )malloc(sizeof(LNode));
c->exp = pa->exp;
c->co = pa->co + pb->co;
rear->next = c;
rear = c;
pa = pa->next;
pb = pb->next;
}
else if( pa->exp < pb->exp) //指数不同时
{
c = ( LinkList )malloc(sizeof(LNode));
c->exp = pa->exp;
c->co = pa->exp;
rear->next = c;
rear = c;
pa = pa->next;
}
else
{
c = ( LinkList )malloc(sizeof(LNode));
c->exp = pb->exp;
c->co = pb->co;
rear->next = c;
rear = c;
pb = pb->next;
}
rear->next = NULL;
return first;
}
while(pa&&!pb)
{
if( c->next != NULL )
{
c = c->next;
}
c->next = pa;
}
while(!pa&&pb)
{
if( c->next != NULL )
{
c = c->next;
}
c->next = pb;
}
return first;
}

void output( LinkList p )
{
while( p->next != NULL )
{
p = p->next;
printf("<%d,%d>", p->co, p->exp);
printf("\n");
}
}
编译时提示的警告:
main.c: In function 'main':
main.c:19:7: warning: ignoring return value of 'scanf', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&func); //输入功能选择编号,当func为0时退出 (n1/n2/n3,creat里的c/e也有这个警告)
^
main.c: In function 'main':
main.c:23:8: warning: 'pa' may be used uninitialized in this function [-Wmaybe-uninitialized]
creat( pa, n1 ); (pb、pc也有这个警告)
^

拜托大家了
展开
 我来答
8826055
2015-11-08 · TA获得超过7510个赞
知道大有可为答主
回答量:1680
采纳率:81%
帮助的人:896万
展开全部
你创建了一个线性表,然而并没有把这个线性表的地址传出去,你传参的时候倒是传了个p,然而并没有什么卵用。
create函数应该返回一个指针,然后以pa = create(n1)这样的形式来调用。
追问

呃。。这个问题搞定了 ,多谢

但是add那里还有个问题,麻烦再帮我看一下吧

问题是他加了第一项,不加第二项就跳出循环了怎么回事


追答
99行你都return first了,可不就直接返回了么。还有你那个while(pa&&pb)是什么鬼,编译器没报错吗?
limmea
2015-11-08 · TA获得超过229个赞
知道小有建树答主
回答量:150
采纳率:100%
帮助的人:74.8万
展开全部
没问题啊 我运行了一遍 没有出错啊。。
追问
呃。。。能输入。。但是输入之后就停止工作了,没输出啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式