字典翻译 问答 其它 【数据结构用C语言-一元多项式的简单计算运行没错误,但输入后内存好像会出现问题,可能是动态申请空间有什么问题,各位高手帮我改改#include#include#include#defineM16typedefstructterm{】
问题标题:
【数据结构用C语言-一元多项式的简单计算运行没错误,但输入后内存好像会出现问题,可能是动态申请空间有什么问题,各位高手帮我改改#include#include#include#defineM16typedefstructterm{】
问题描述:

数据结构用C语言-一元多项式的简单计算运行没错误,但输入后内存好像会出现问题,可能是动态申请空间有什么问题,各位高手帮我改改#include#include#include#defineM16typedefstructterm{//项的表示,多项式的项作为LinkList的数据元素floatcoef;//系数intexpn;//指数structterm*next;}term;voidPolyInitiate(term**head){*head=(term*)malloc(sizeof(term));(*head)->next=NULL;}voidCreatPolyn(term*P,intm){//输入m项的系数,最高次幂项指数为m-1,建立表示一元多项式的单链表PP->coef=0.0;inti;printf("依次输入%d个系数(没有的项系数为0)n",m);for(i=0;icoef);P->expn=i;P=P->next=(term*)malloc(sizeof(term));}}voidCalculatepoly(term*x,term*y,term*z,inta){//计算多项式x和y,a为0加,非0减,结果为zinti;for(i=0;icoef=x->coef+y->coef;elsez->coef=x->coef-y->coef;z->expn=x->expn;}}voidPrintfpoly(term*z){//输出多项式zinti;printf("%fx^%d",z->coef,z->expn);z=z->next;for(i=1;icoef>=0)printf("+");printf("%fx^%d",z->coef,z->expn);z=z->next;}}voidmain(void){//测试主函数term*x,*y,*z;inta;printf("加法输入1,减法输入0");scanf("%d",&a);PolyInitiate(&x);PolyInitiate(&y);PolyInitiate(&z);CreatPolyn(x,M);CreatPolyn(y,M);Printfpoly(x);Printfpoly(y);Calculatepoly(x,y,z,a);Printfpoly(z);}

陈国龙回答:
  malloc分配内存要用free释放
点击显示
其它推荐
热门其它推荐
  • 其它