下面的是本人编写的程序,经调试发现在排序那段有问题。有没有高人帮我修改下,最好不要把我的框架改了,小弟再次谢过!
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 20 //结构定义
typedef struct Node{
float coef;
int expn;
struct Node *next;
}*LNode;
void CreatF(LNode &L,int n){ //建立一个多项式
int i;
LNode p,q;
L=(LNode) malloc(sizeof(LNode));
L->expn=-1;
L->next=NULL;
p=L->next;
q=L;
for(i=1;i<=n;i++){
p=(LNode) malloc(sizeof(LNode));
p->next=NULL;
printf("请输入第%d项的系数",i);
scanf("%f",&p->coef);
printf("请输入第%d项的指数",i);
scanf("%d",&p->expn);
q->next=p;
p=p->next;
q=q->next;
}
}//CreatF
void PaixuF(LNode &L,int n){ //冒泡排序
LNode p,q;
p=L->next;
q=p->next;
int i,j,t;
for(i=1;i<n;i++){
for(j=1;j<n-i;j++){
if(p->expn>q->expn){
t=p->expn;
p->expn=q->expn;
q->expn=t;
}//if
p=p->next;
q=q->next;
}//for
}//for
}//PaixuF
void AddF(LNode &L1,LNode &L2){ //多项式加法运算
LNode o,p,q;
float sum;
o=L1;
p=L1->next;
q=L2->next;
while(p&&q){
if(p->expn-q->expn<0){
o=o->next;
p=p->next;
}
else if(p->expn-q->expn==0){
sum=p->coef+q->coef;
if(sum!=0.0){
p->coef=sum;
o=o->next;
p=p->next;
q=q->next;
}//if
else {
o=p->next;
o=p;
p=p->next;
q=q->next;
}//else
}
else if(p->expn-q->expn>0){
o=o->next;
q=q->next;
}
}//while
if(!q->next) p->next=q;
free(L2);
}//AddF
void DisplayF(LNode &L,int n){ //显示多项式
LNode p;
p=L->next;
printf("%f*(%d)",p->coef,p->expn);
for(int i=2;i<=n;i++){
if(p->coef<0){
printf("%f*(%d)",p->coef,p->expn);
p=p->next;
}//if
else printf("+%f*(%d)",p->coef,p->expn);
}//for
}//DisplayF
void main(){
int m,n;
LNode L1,L2;
printf("请输入多项式L1的项数");
scanf("%d",&m);
CreatF(L1,m);
printf("请输入多项式L2的项数");
scanf("%d",&n);
CreatF(L2,n);
PaixuF(L1,m);
PaixuF(L2,n);
AddF(L1,L2);
DisplayF(L1,m);
}//main
用C语言实现数据结构的题目:一元多项式相加
如: 1 1 2 2 3 3 0 0 2 2 3 3 0 0 结果:1 1 4 2 6 3 include <stdio.h> include <malloc.h> struct poly \/\/设置结构体 { int xi;int zhi;struct poly *next;};struct poly *jianli(void) \/\/建立链表 { struct poly *p1,*head1,*p2;head1=(struct poly*)malloc(siz...
数据结构课程设计报告(一元多项式的计算)
node * create(void) \/*指针函数,返回指针类型;用尾插法建立一元多项式的链表的函数*\/ { node *h,*r,*s;float c;int e;h=(node *)malloc(sizeof(node)); \/*建立多项式的头结点,为头结点分配存储空间*\/ r=h; \/*r指针始终动态指向链表的当前表尾,以便于做尾插入,其初值指向头结点*...
数据结构(c++)一元多项式的代数运算
cout<<"\\t***一元多项式的简单运算***"<<endl; cout<<"\\t\\t 1创建要运算的两个一元多项式"<<endl; cout<<"\\t\\t 2将两个一元多项式相加"<<endl; cout<<"\\t\\t 3将两个一元多项式相减"<<endl; cout<<"\\t\\t 4将两个一元多项式相乘"<<endl; cout<<"\\t\\t 5显示两个一元多项式"<<endl; cou...
急求C语言数据结构一元多项式
currB = headB->next;headC = Init();while(currA!=NULL && currB!=NULL){ if(currA->exp > currB->exp){ AddNode(headC, currA->coef, currA->exp);currA = currA->next;} else if(currA->exp currB->exp){ AddNode(headC, currB->coef, currB->exp);currB = cur...
如何用C语言实现一元多项式简单计算器的设计
(2)多项式输出,以 c1,e1,c2,e2,...输出 其中ci为系数,ei为指数;(3)多项式相加,c=a+b。说明: (1)多项式一指数升序排序,但输入时不检查;(2)以带头指针的单链表存储。---*\/ define OK 1 define FAILE 0 define ERROR 0 define OVERFLOW 0 include <iostream> using namespace std;typ...
数据结构(C语言)用单链表存储一元多项式,并实现两个多项式的相加...
数据结构(c语言)用单链表存储一元多项式,并实现两个多项式的相加运算【最新】阅读:1037次 页数:36页 2016-03-21 举报 include<stdio.h> include<stdlib.h> include<malloc.h> typedef int ElemType;\/*单项链表的声明*\/ typedef struct PolynNode{ int coef; \/\/ 系数 int expn; \/\/ ...
请高手帮帮忙,我写了数据结构中的一元多项式的表示及相加,只有框架,能...
一元多项式的相加 提示:(1) 一元多项式的表示问题:对于任意一元多项式:Pn(x)= P0+ P1X1+ P2X2+ … + PiXi+ … + PnXn 可以抽象为一个由“系数-指数”对构成的线性表,且线性表中各元素的指数项是递增的:P=( ( P0,0), ( P1,1), ( P2,2), … , ( Pn,n) )(2 ) ...
数据结构课程设计(C语言版) 一元稀疏多项式的运算
输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列;⑶ 多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷ 多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸ 设计一个菜单,上述操作要求的基本功能。
运用C#数据结构编写程序进行一元多项式的计算
if (r != null) return r.factor_; else return 0; } set { if (rank < 0) throw new ArgumentOutOfRangeException(
...用单链表储存一元多项式,并实现两个多项式的相加运算(语法没有错误...
include <malloc.h> define MAX 20 \/\/多项式最多项数 typedef struct{ double ratio;int exp;} ElemType;typedef struct LNode { ElemType data;struct LNode *next;} LinkList;void CreateListR(LinkList *&L,ElemType a[],int n){ LinkList *s,*r;int i;L=(LinkList *)malloc(size...