初学者关于编译器错误的问题

时间:2016-11-30 16:36:39

标签: c++

我对编程和编码很陌生,所以我遇到一些我似乎无法理解的问题。我真的在寻找答案,但徒劳无功。

编译器提到了2个错误:

  

在函数'intmain()'中:

  

预期';'在'{'代币

之前
#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") ;
     }

2 个答案:

答案 0 :(得分:3)

我正在回答这个问题,因为它可能是完全破解代码的规范案例。以下是错误:

using namespace std;&lt; - 一个人永远不应该这样做。

main ()&lt; - main的原型为int main()int main(int, char* [])

float a, b, c, D, x1, x2, x;&lt; - 不要养成提前声明所有变量的习惯&#39;。相反,请在需要时声明它们。

else if (D=0)&lt; ---这不是你想要做的。你指定0做D.你想比较它们,所以使用if (D == 0)

else (D<0)&lt; - 缺少if。应为else if (D < 0)

{x= -b/(2*a);&lt; - 这只是一种可怕的风格。除非主体是单行,否则不要在打开大括号后放置其他语句,并且在这种情况下,将大括号放在同一行中。

无处不在 - 正确地格式化代码,就像文本一样。

答案 1 :(得分:0)

它在这里:

else (D<0)

编译器感到不安,因为它需要else的正文,而你却没有提供。{/ p>

语法是

if (condition)
{

}
else
{

}

你不需要告诉编译器&#34; else&#34;条件是; condition为假时。