建立升序的一元多项式
程序代码:
#include<stdio.h> #include<malloc.h> struct node { int coef; int expn; struct node * next; }; typedef struct node polyn; polyn *createList() { int i=1; int j,k; polyn *head,*p,*q,*t; p=head=(polyn *)malloc(sizeof(polyn)); p->expn=-1; p->next=NULL; printf("请输入第%d项的系数以及指数\n",i); scanf("%d,%d",&j,&k); while((j!=0)||(k!=0)) {if(j==0) printf("系数不能为0!\n"); else if(k<=p->expn) {printf("输入错误\n");} else { if(p->next!=NULL) {q=p->next; while((k>q->expn)&&(q->next!=NULL)) { p=q; q=q->next; } if(k<q->expn) { t=(polyn *)malloc(sizeof(polyn)); t->coef=j; t->expn=k; t->next=q; p->next=t; } if(k>q->expn) { t=(polyn *)malloc(sizeof(polyn)); t->coef=j; t->expn=k; t->next=NULL; p->next=t; } if(k=q->expn) {printf("输入错误\n请输入第%d项的系数以及指数\n",i); scanf("%d,%d",&j,&k);} } else { t=(polyn *)malloc(sizeof(polyn)); t->coef=j; t->expn=k; t->next=NULL; p->next=t; } i++; p=head; } fflush(stdin); //清空缓冲区 printf("请输入第%d项的系数以及指数\n",i); scanf("%d,%d",&j,&k); } return(head); }
建立一元多项式,要求指数升序排序,想实现可以任意输入系数和指数,书上的代码是已经按指数升序来输入的。
求解答,应该怎么改?
[此贴子已经被作者于2016-9-21 23:04编辑过]