0
一度機能を追加してmainメソッドで呼び出すと、クラッシュが開始されました。私はこのメソッドを追加する前にコードが正常に実行されていた。コードは多項式を実行して、その多項式の配列を使ってその導関数を求めます。コードのこのセクションを実行しようとするたびにC++がクラッシュする
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int readPolynomial (int maxOrder, double polynomial[]) {
int order,i;
cout<< "enter the order of the polynomial";
cin>>order;
i=order;
while (i>-1){
cout<<" enter a coeffecient for x^"<<i<<endl;
cin>>polynomial[i];
--i;
}
return order;
}
void displayPolynomial (int order, double polynomial[]) {
for (int i = order; i>-1;i--){
if (polynomial[i] > 0) {
cout << " +" << polynomial[i]<< "x^"<<i;
}
else {
cout << " - " << fabs(polynomial[i])<<"x^"<<i;
}
}
}
int differentiate (int order, double polynomial[], double derivative[]){
int der;
der= order-1;
int i = der;
while (i>-1){
derivative[i]=polynomial[order]*order;
order--;
i--;
}
return der;
}
int main() {
const int MAXN = 8; // maximum order (a constant)
double polynomial[MAXN + 1];
int polynomialN;
double x,value;
double derivative[polynomialN-1];
double derOrder;
polynomialN = readPolynomial (MAXN, polynomial);
cout << "\nThe polynomial (order = " << polynomialN << ") is\n";
displayPolynomial (polynomialN, polynomial);
derOrder = differentiate (polynomialN, polynomial, derivative);
cout<< " the derivative of the polynomial is:"<<endl;
displayPolynomial (derOrder, derivative);
system("PAUSE"); return 0;
}
デバッグ助けを求める質問は、(「**なぜこのコードは動作しない?**」)を再生するために、 特定の問題やエラー**と最短のコードに必要な を**望ましい行動を含める必要がありますそれは**質問自体にあります。 **明確な問題のない質問 ステートメント**は、他の読者には役に立ちません。参照:[最小、完全、および 検証可能な例の作成方法](http://stackoverflow.com/help/mcve)また、メモリチェックツール(AddressSanitizer、Valgrind)を試してみてください。 –
二重微分[多項式N-1]; - Um。宣言に遭遇した*正確な点で 'polynomialN'とは何ですか?ヒント:後で 'polynomialN'の値を変更するだけで、配列は魔法のように展開されません。 – WhozCraig
多項式Nを初期化する前に使用します。悪いことが起こります。 –