设计一个一元多项式简单的计算器(C语言)要求:(1)用带头节点的单链表表示多项式,表中每一个节点表示多项式的一项 (2)一元多项式简单计算器的基本功能为:输入并建立多项式,输出
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/17 03:53:26
![设计一个一元多项式简单的计算器(C语言)要求:(1)用带头节点的单链表表示多项式,表中每一个节点表示多项式的一项 (2)一元多项式简单计算器的基本功能为:输入并建立多项式,输出](/uploads/image/z/1378476-36-6.jpg?t=%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E4%B8%80%E5%85%83%E5%A4%9A%E9%A1%B9%E5%BC%8F%E7%AE%80%E5%8D%95%E7%9A%84%E8%AE%A1%E7%AE%97%E5%99%A8%28C%E8%AF%AD%E8%A8%80%29%E8%A6%81%E6%B1%82%EF%BC%9A%EF%BC%881%EF%BC%89%E7%94%A8%E5%B8%A6%E5%A4%B4%E8%8A%82%E7%82%B9%E7%9A%84%E5%8D%95%E9%93%BE%E8%A1%A8%E8%A1%A8%E7%A4%BA%E5%A4%9A%E9%A1%B9%E5%BC%8F%2C%E8%A1%A8%E4%B8%AD%E6%AF%8F%E4%B8%80%E4%B8%AA%E8%8A%82%E7%82%B9%E8%A1%A8%E7%A4%BA%E5%A4%9A%E9%A1%B9%E5%BC%8F%E7%9A%84%E4%B8%80%E9%A1%B9++++++%282%29%E4%B8%80%E5%85%83%E5%A4%9A%E9%A1%B9%E5%BC%8F%E7%AE%80%E5%8D%95%E8%AE%A1%E7%AE%97%E5%99%A8%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%8A%9F%E8%83%BD%E4%B8%BA%EF%BC%9A%E8%BE%93%E5%85%A5%E5%B9%B6%E5%BB%BA%E7%AB%8B%E5%A4%9A%E9%A1%B9%E5%BC%8F%2C%E8%BE%93%E5%87%BA)
设计一个一元多项式简单的计算器(C语言)要求:(1)用带头节点的单链表表示多项式,表中每一个节点表示多项式的一项 (2)一元多项式简单计算器的基本功能为:输入并建立多项式,输出
设计一个一元多项式简单的计算器(C语言)
要求:(1)用带头节点的单链表表示多项式,表中每一个节点表示多项式的一项
(2)一元多项式简单计算器的基本功能为:输入并建立多项式,输出多项式,2个多项式相减
设计一个一元多项式简单的计算器(C语言)要求:(1)用带头节点的单链表表示多项式,表中每一个节点表示多项式的一项 (2)一元多项式简单计算器的基本功能为:输入并建立多项式,输出
#include
#include
typedef struct Node
{
int data;
struct Node *next;
}Node;//链表结点
typedef struct LinkList//定义链表数据类型
{
Node *head;//表头结点
void PrintMform()//输出多项式
{
Node *p=head->next;
int exp = head->data-1;
while(p!=NULL)
{
if(exp==head->data-1)
printf("%dX^%d",p->data,exp);
else
{
if(p->data>0)
printf("+%dX^%d",p->data,exp);
if(p->data==0)
printf("+0");
if(p->data
data,exp);
}
exp--;
p=p->next;
}
printf("\n");
}
void CreateByInput(int length)//通过输入元素建立链表
{
head=(Node *)malloc(sizeof(Node));
head->data=0;//表头节点存储链表真实长度
head->next=NULL;
int i,temp;
Node *p,*cur = head;
for(i=1;idata=temp;
p->next=cur->next;
cur->next=p;
cur = cur->next;
head->data++;
}
}
}LinkList;
void main()
{
LinkList L1,L2;
int length;//就是多项式的项数
printf("Please input the first LinkList's length:\n");
scanf("%d",&length);
printf("begin to struct the first LinkList\n");//开始构造第一个多项式
L1.CreateByInput(length);
printf("begin to struct the second LinkList\n");//开始构造第二个多项式
L2.CreateByInput(length);
printf("the first duoxiangshi is:\n");
L1.PrintMform();//输出第一个多项式
printf("the second duoxiangshi is:\n");
L2.PrintMform();//输出第二个多项式
Node *p = L1.head->next;/////////////////从这里开始
Node *q = L2.head->next;//是计算多项式L1-L2,结果存入L1
while(p!=NULL)
{
p->data-=q->data;
p=p->next;
q=q->next;
}/////////////////////////////////////到这里结束
printf("the substract is:\n");
L1.PrintMform();
system("pause");
}