我有struct PolyNode,一个char多项式将被输入,在main函数中创建两个,然后我要将它们相加和相乘。我不知道如何编写create函数。我会做加法和乘法。
我的创建函数:
polynode*CreatePoly(char*expr);
--------------------
我的打印功能:
void Print(PolyNode* poly)
{
if (poly == NULL)
{
printf("<NULL>\n");
return;
}
printf("<");
PolyNode* p = poly;
while (p != NULL) {
if (p->exp == 0) {
printf("%+-3.1f", p->coef);
}
else if (p->exp == 1) {
if (p->coef == 1.0) printf("+x ");
else if (p->coef == -1.0) printf("-x ");
else printf("%+-3.1fx ", p->coef);
}
else {
if (p->coef == 1.0) printf("+x^%-2d ", p->exp);
else if (p->coef == -1.0) printf("-x^%-2d ", p->exp);
else printf("%+-3.1fx^%-2d ", p->coef, p->exp);
} //end-else
p = p->next;
} // end-while
printf(">\n");}
--------------------
我从main中调用函数,如下所示:
polynode*poly1=CreatePoly((char*)“-x^3-6x^2+4x+22”);
printf(“%25s”,“poly1[-x^3-6x^2+4x+22]:”);
打印(poly1);
--------------------
多节:
struct PolyNode{ double coef; // Coefficient
int exp; // Exponent
struct PolyNode* next; // Next polynomial node
};
您需要编写一个“解析器”。一个更常见的例子是实现一个简单计算器的代码:它必须读取数字,可能是变量和运算符,并且要么构造一个解析树,要么动态求值。
看看这样做的示例和练习代码,这里的大部分内容都是一样的。