2011-07-24 11 views
1

これは私のプログラムです。私は無効な間接指定が何であるか知りませんので、次に何をすべきか分かりません。エラーは、配列/ポインタとして、整数Cを、使用しているので、あなたはこれを見ている52無効なインダイレクションC++

#include<iostream.h> 
#include<conio.h> 
#include<math.h> 
#include<stdio.h> 


int main() 
{ 
int d, c; 

double fx, fx1, fx2, fx3, fd, fd1, fd2, fd3, x, xi, e, y, er; 

double in[9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; 

clrscr(); 


cout << "\n\nEnter degree: "; 

cin >> d; 

if(d == 9) 
{ 
    cout << "\n\nThis is only limited up to the dehree of 8."; 
} 

else if(d == 0) 
{ 
    cout << "\n\nCannot solve equation. There is no variable present."; 
} 

else 
{ 

    for(c = d; c >= 0; c--) 
    { 
     cout << "\nCoeff for x^" << c << " term: "; 
     cin >> in[c]; 
    } 

    cout << "\n\nEnter xi = "; 
    cin >> x; 

    do 
    { 
     **fx1 = (c[8] * pow(x,8)) + (c[7] * pow(x,7)) + (c[6] * pow(x,6)); 
     fx2 = (c[5] * pow(x,5)) + (c[4] * pow(x,4)) + (c[3] * pow(x,3)); 
     fx3 = (c[2] * pow(x,2)) + (c[1] * x) + c[0]; 
     fx = (fx1 + fx2 + fx3); 

     fd1 = (d * c[0] * pow(x, d-1)) + ((d-1) * c[1] * pow(x, d-2)) + ((d-2) * c[2] * pow(x, d-3)); 
     fd2 = ((d-3) * c[3] * pow(x, d-4)) + ((d-4) * c[4] * pow(x, d-5)) + ((d-5) * c[5] * pow(x, d-6)); 
     fd3 = ((d-6) * c[6] * pow(x, d-7)) + (c[7]);** 

     fd = (fd1 + fd2 + fd3); 

     y = x; 

     x = (x - (fx/fd)); 

     e = x - y; 

     if(e >=0) 
     { 
      er = e; 
     } 

     else 
     { 
      er = -(e); 
     } 
    }while(er > 0.0000000001); 

    cout << "\n\nThe root of the equation is " << x << "."; 



} 



getch(); 


return 0; 
} 
+0

どのコンパイラを使用していますか?名前空間を修飾したり、ファイルの最上部にある '名前空間std;を使う'ことなく、 'cout'を全部散らばってしまいました。少なくともここでコードをコンパイルする前にコードをコンパイルするように努力してください。 – Praetorian

+0

また、 '0'と '9'とを比較するだけではなく、 '0 8 'となる。私はあなたがC + +で本を拾うことをお勧めします。 – Praetorian

+0

イムはターボcを使用しています。私の先生は令を使用しているので私はちょうど従う。あなたのおかげで助けてくれます:) –

答えて

4

にライン46から発見されました。間接エラーは、ポインタではないものを間違って逆参照しているために発生します。

4

は、[8]、C [6]など

+0

私はc [0]をin [0]に変更します。次の問題は、それが正解を示していないということです。 –

1

を理にかなって、変数cは、配列が、int型ではなく、cが存在しますが、[[] cの代わりに、すなわち同じ配列名を使用する必要があります。 ]また、すべての変数の前に**を削除します。

関連する問題