2016-11-30 10 views
0

私はプログラミングとコーディングがとても新しいので、私は理解できないような問題に直面しています。私は本当に答えを探しましたが無駄です。 ')(intmain' 関数で初心者のQはコンパイラエラー

コンパイラは2つのエラーを挙げる

予想

';' '{' トークン

#include<iostream> 
#include<math.h> 
using namespace std; 
main() 
{ 
    float a, b, c, D, x1, x2, x; 
    cout<<"enter the value of a :"; 
    cin>>a; 
    cout<<"enter the value of b :"; 
    cin>>b; 
    cout<<"enter the value of c :"; 
    cin>>c; 
    D= b*b-4*a*c; 
    if(D>0) 
    { 
    x1= (-b-sqrt(D))/(2*a); 
    x2= (-b+sqrt(D))/(2*a); 
    cout<<"the roots of the equation are"<<x1<<"and"<<x2<<" \n"; 
    } 
    else if (D=0) 
    {x= -b/(2*a); 
    cout<<"the double root of the equation is"<<x<<" \n"; 
    } 
    else (D<0) 
    { 
    cout<<"no solution \n:"; 
    } 
    system("pause") ; 
    } 

答えて

3

私は完全に壊れたコードの標準的なケースかもしれないので、私はこの質問に答えています。エラーは次のとおりです。

using namespace std; < - これは決して行うべきではありません。

main() <からmainのプロトタイプがint main()またはint main(int, char* [])

float a, b, c, D, x1, x2, x; <ある - '事前に' すべての変数を宣言するのが習慣に得ることはありません。代わりに、必要に応じて宣言してください。

else if (D=0) < ---これはあなたがしたいことではありません。あなたはDを0に割り当てました。あなたはそれらを比較したかったので、if (D == 0) else (D<0) < - 欠けているifを使用してください。 else if (D < 0)

{x= -b/(2*a); < - これはちょっとひどいスタイルです。本体が1行でない限り、中括弧を開いた後に他の文を置かないでください。この場合は、同じ行の中括弧を閉じます。

どこでも - テキストのように、コードを適切にフォーマットします。

+0

ありがとうございました。あなたが私に提供したソリューションを使用して問題を解決します。 –

0

それはここにあります:それはelseのために身体を望んでいた、とあなたは1を提供しなかったので、

else (D<0) 

コンパイラが動揺しています。

構文は、あなたが「他」の条件が何であるかをコンパイラに指示する必要はありません

if (condition) 
{ 

} 
else 
{ 

} 

です。 conditionがfalseのときです。

+0

ありがとう、私はあなたのポイントを考慮し、私の仕事を改善しようとします。 –