求这个C++代码的详细解释 每一行每一个函数都要 站等

来源:百度知道 编辑:UC知道 时间:2024/07/05 02:48:37
#include <stdio.h>
#include <malloc.h>
typedef struct polynode
{
int c;
int e;
struct polynode *next;
} poly;
poly *creatpoly()
{
poly *p, *q, *h;
q = NULL, h = NULL;
int c;
int e;

while (e!=-1)
{
scanf("%d%d", &c, &e);
h = (poly*)malloc(sizeof(poly));
h->c = c;
h->e = e;
h->next = NULL;
if (q == NULL)
q = h;
else
p->next = h;
p = h;
}
return q;
}

poly *qiudao(poly *p)
{
poly *s;
s = p;
while (p)
{
p->c = (p->c)*(p->e);
p->e = (p->e) - 1;
p = p->next;
}

return s;
}

void print(poly *p)
{
int i = 0;
if (p->e == - 1)
{
printf("0");
i++;
}

#include <stdio.h>
#include <malloc.h>
typedef struct polynode
{
int c;//系数
int e;//指数
struct polynode *next;
} poly;//一元多项式的项
poly *creatpoly()//创建一元多项式
{
poly *p, *q, *h;
q = NULL, h = NULL;
int c;
int e;

while (e!=-1)
//如果输入指数为-1,则表示创建一元多项式结束,不含-1次项
{
scanf("%d%d", &c, &e);//输入当前的系数和指数
h = (poly*)malloc(sizeof(poly));//新创建一个一元多项式的项,h用来指向新的地址
h->c = c;
h->e = e;//保存系数、指数
h->next = NULL;
if (q == NULL)
q = h;//q只被调用一次,用来记载头结点
else
p->next = h;//p是浮动的,总是指向新建结点即h所指结点的上一结点
p = h;//h结点建好后,p指向这个刚建好结点,以备利用h再新建一个结点
}//p是一个游标,h是一个用来指向刚创建的结点,q指向整个链表的头结点
return q;//其实把q和h换下变量名比较好理解些
}

poly *qiudao(poly *p)
{
poly *s;
s = p;
while (p)
{//只要指针结点不为空,系数等于原系数乘以原指数减一,指数等于原指数减一
p->c