出于某种原因,当我试图做我的导数时,它只是做一个项目的导数,而不是整个多项式。
struct term{
double coef;
unsigned deg;
struct term * next;
};
我有一个结构,然后还有一个具有深拷贝构造函数和 = 构造函数的类多项式。在私人课程中,我有一个term* ptr
这是我的衍生代码
void Polynomial::derivative (Polynomial *p){
term *x;
if ( ptr == NULL)
return ;
term *temp;
temp = ptr;
while (temp != NULL){
if ( ptr == NULL){
ptr = new term ;
x = ptr ;
}
else{
x -> next = new term ;
x = x -> next ;
}
x-> coef = temp -> coef * temp -> deg;
x-> deg = temp -> deg - 1;
temp = temp -> next;
}
ptr=x;
}
所以当我尝试衍生3x^4 + 3x^4 + 6x^7 + 3x^4 + 3x^4 + 6x^7 + 2x^9
我得到18x^8
我正在查看代码,不知道为什么它只在最后一个学期这样做,因为它是一个 while 循环,应该从开始到 NULL 并进行导数。