请指教~~~!!!!

littlecc2009 2010-05-29 11:03:35

#include<stdio.h>
#include<conio.h>
#include<malloc.h>

typedef struct
{
float coef;
int expn;

}term,ElemType;

typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

typedef LinkList polynomail;

LinkList CreatPolyn(int m)
{
int i;
polynomail P;

ElemType newdata;
LNode *newnode;
LNode *p0;
P=(polynomail)malloc(sizeof(LNode));
p0=P;
p0->next=NULL;
for(i=0;i<m;i++)
{
newnode=(polynomail)malloc(sizeof(LNode));
printf("Please input the coef:");
scanf("%f",&newdata.coef);
printf("Please input the expn:");
scanf("%d",&newdata.expn);
p0->next=newnode;
p0->next->data=newdata;
p0=p0->next;
}
return P;
}
void PrintPolyn(polynomail P)
{
LNode *n;
ElemType data;
n=P->next;
while(n!=NULL)
{
data=n->data;


printf("%fX^%d+",data.coef,data.expn);
n=n->next;
}

}

void AddPolyn(polynomail Pa,polynomail Pb)
{
LNode *p1;
LNode *p2;
LNode *p3;
p3=Pa;
p1=Pa->next;
p2=Pb->next;
while(p1!=NULL&&p2!=NULL)
{
if(p1->data.expn<p2->data.expn&&p1->next->data.expn>p2->next->data.expn)
{
p2->next=p1->next;
p1->next=p2;
free(p2);

}
if(p1->data.expn=p2->data.expn)
{
p1->data.coef=(p1->data.coef)+(p2->data.coef);
}
if(p1->data.expn>p2->data.expn)
{
p1=p1->next;
p3->next=p2;
p2->next=p1;
}
p3=p3->next;
p2=p2->next;
p1=p1->next;
}

}

void main()
{
int number;
polynomail L;

printf("Please input the number of the items:");
scanf("%d",&number);

L=CreatPolyn(number);
PrintPolyn(L);
getchar();
}



请问为什么出现未处理异常呢?(我用的是DEV)

请指教!!~~谢谢!!!~~~~~
...全文
102 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlecc2009 2010-05-31
  • 打赏
  • 举报
回复
ddddddddddddddddddddd好像没什么问题哦!!就是执行到最后输出的时候就出错了,然后exe被强制关闭
wibnmo 2010-05-30
  • 打赏
  • 举报
回复
帮顶。。
huanmie_09 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 littlecc2009 的回复:]
引用 4 楼 huanmie_09 的回复:
LinkList CreatPolyn(int m)函数里添加一句,使尾节点的next域指空。

C/C++ code

for(i=0;i<m;i++)
{
newnode=(polynomail)malloc(sizeof(LNode));
printf("Please input the……

还是不行。。。。。。。。。。。。……
[/Quote]
单步跟踪一下试试,手上没编译器,看运行到哪里抛异常。
littlecc2009 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 huanmie_09 的回复:]
LinkList CreatPolyn(int m)函数里添加一句,使尾节点的next域指空。

C/C++ code

for(i=0;i<m;i++)
{
newnode=(polynomail)malloc(sizeof(LNode));
printf("Please input the……
[/Quote]
还是不行。。。。。。。。。。。。。。。。。。。。。。
如果大家用dev的话可以帮我试试吗??谢谢!!~~~~
huanmie_09 2010-05-29
  • 打赏
  • 举报
回复
LinkList CreatPolyn(int m)函数里添加一句,使尾节点的next域指空。

for(i=0;i<m;i++)
{
newnode=(polynomail)malloc(sizeof(LNode));
printf("Please input the coef:");
scanf("%f",&newdata.coef);
printf("Please input the expn:");
scanf("%d",&newdata.expn);
p0->next=newnode;
p0->next->data=newdata;
p0=p0->next;
}
p0->next = NULL; //add
littlecc2009 2010-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 nbda1121440 的回复:]
是运行错误吗?对了,楼主你是怎么修改帖子的?
这个程序只要把尾置空就行了

C/C++ code

#include<stdio.h>
#include<conio.h>
#include<malloc.h>

typedef struct
{
float coef;
int expn;

}term,ElemType;
……
[/Quote]
还是不行哦。。。。。是输出了之后弹出窗口:未处理异常,问我要不要用其它VS2008调试
修改帖子教程:发帖后,在贴子右下角的管理-》编辑 即可修改!!~~
周靖峰 2010-05-29
  • 打赏
  • 举报
回复
是运行错误吗?对了,楼主你是怎么修改帖子的?
这个程序只要把尾置空就行了

#include<stdio.h>
#include<conio.h>
#include<malloc.h>

typedef struct
{
float coef;
int expn;

}term,ElemType;

typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

typedef LinkList polynomail;

LinkList CreatPolyn(int m)
{
int i;
polynomail P;

ElemType newdata;
LNode *newnode;
LNode *p0;
P=(polynomail)malloc(sizeof(LNode));
p0=P;
p0->next=NULL;
for(i=0;i<m;i++)
{
newnode=(polynomail)malloc(sizeof(LNode));
newnode->next = NULL; //尾指针置空
printf("Please input the coef:");
scanf("%f",&newdata.coef);
printf("Please input the expn:");
scanf("%d",&newdata.expn);
p0->next=newnode;
p0->next->data=newdata;
p0=p0->next;
}
return P;
}
void PrintPolyn(polynomail P)
{
LNode *n;
ElemType data;
n=P->next;
while(n!=NULL)
{
data=n->data;


printf("%fX^%d+",data.coef,data.expn);
n=n->next;
}

}

void AddPolyn(polynomail Pa,polynomail Pb)
{
LNode *p1;
LNode *p2;
LNode *p3;
p3=Pa;
p1=Pa->next;
p2=Pb->next;
while(p1!=NULL&&p2!=NULL)
{
if(p1->data.expn<p2->data.expn&&p1->next->data.expn>p2->next->data.expn)
{
p2->next=p1->next;
p1->next=p2;
free(p2);

}
if(p1->data.expn=p2->data.expn)
{
p1->data.coef=(p1->data.coef)+(p2->data.coef);
}
if(p1->data.expn>p2->data.expn)
{
p1=p1->next;
p3->next=p2;
p2->next=p1;
}
p3=p3->next;
p2=p2->next;
p1=p1->next;
}

}

void main()
{
int number;
polynomail L;

printf("Please input the number of the items:");
scanf("%d",&number);

L=CreatPolyn(number);
PrintPolyn(L);
getchar();
}
zhangyafei13 2010-05-29
  • 打赏
  • 举报
回复
看看,学习学习

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧