何らかの理由で、導関数を実行しようとすると、多項式全体ではなく、1つの項目の導関数が実行されます。
struct term{
double coef;
unsigned deg;
struct term * next;
};
構造体があり、ディープコピーコンストラクターと=コンストラクターを持つクラスPolynomialもあります。プライベートクラスでは、私は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まで進み、導関数を実行する必要があるため、なぜ最後の用語でそれを実行するのかわかりません。