📄 xiugai.c
字号:
#include<stdio.h>
struct link
{int factor;
int index;
struct link *next;
}*list1,*list2,*list3;
struct link *creat_list() /*建立链表*/
{
struct link *p;
struct link *head;
struct link *q;
head=(struct link*)malloc(sizeof(struct link));
head->next=NULL;
q=head;
do
{
p=(struct link*)malloc(sizeof(struct link));
scanf("%d%d",&p->factor,&p->index);
if(p->factor==0)break;
q->next=p;
q=p;
} while(p->factor!=0);
q->next=NULL;
q=head;
return q;
}
void print_list(struct link *p) /*输出链表*/
{
int i=1;
p=p->next;
do
{
if(i==1)
{printf("%d*X~%d",p->factor,p->index);i++;}
p=p->next;
if(p->factor>0)printf("+");
printf("%d*X~%d",p->factor,p->index);
}
while(p->next!=NULL);
printf("\n");
}
struct link *add_list(struct link *p1,struct link *p2)
{
struct link *r1,*r2,*q;
r1=p1;
r2=p2;
do
{
r1=r1->next;
do
{
r2=r2->next;
if(r1->index==r2->index){r1->factor=r1->factor+r2->factor;r2->factor=0;}
}while(r2);r2=p2;
}while(r1->next);
r2=p2;
r1->next=r2->next;
do
{r2=r1;
r1=r1->next;
if(r1->factor==0){r2->next=r1->next;r1->next=r2->next;r1=r2;}
}while(r1->next);
return p1;
}
void main()
{
printf("Input A Polynomial's factor and index please! (End of 0 0)\n");
list1=creat_list();
if(list1==NULL){printf("error!");exit(0);}
printf("Input B Polynomial's factor and index please! (End of 0 0)\n");
list2=creat_list();
if(list2==NULL){printf("error!");exit(0);}
clrscr();
printf("A Polynomial is:\nA=");
print_list(list1);
printf("B Polynomial is:\nB=");
print_list(list2);
list3=add_list(list1,list2);
if(list3==NULL){printf("error!");exit(0);}
printf("(A+B) Polynomial is:\nA+B=");
print_list(list3);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -