2016-11-30 5 views
0

Ich bin sehr neu in der Programmierung und Codierung, so dass ich mit Problemen konfrontiert bin, von denen ich einige nicht zu verstehen scheinen. Ich habe wirklich nach Antworten gesucht, aber vergebens.Anfänger Q auf Compiler-Fehler

Der Compiler 2 erwähnt Fehler:

Funktion 'intmain()':

und

erwartet ';' vor '{' token

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

Antwort

3

Ich beantworte diese Frage, weil es sich um einen kanonischen Fall von komplett defektem Code handeln könnte. Hier sind die Fehler:

using namespace std; < - sollte man dies nie tun.

main() < - ein Prototyp für main ist int main() oder int main(int, char* [])

float a, b, c, D, x1, x2, x; < - nicht bekommen, in Gewohnheit, alle Variablen 'im Voraus' zu deklarieren. Erklären Sie sie stattdessen so, wie Sie sie benötigen.

else if (D=0) < --- das ist nicht das, was Sie tun wollten. Sie wollten 0 tun D. Sie wollten sie vergleichen, also verwenden Sie if (D == 0)

else (D<0) < - fehlt if. Sollte else if (D < 0) sein

{x= -b/(2*a); < - das ist nur eine schreckliche Art. Fügen Sie keine anderen Anweisungen nach dem Öffnen der Klammer ein, es sei denn, der Körper ist eine einzelne Linie, und in diesem Fall schließen Sie die Klammer in der gleichen Zeile.

Und überall - formatieren Sie Ihren Code richtig, wie ein Text.

+0

Vielen Dank für Ihre Hilfe. Ich werde das Problem beheben, indem ich die Lösungen benutze, die Sie mir zur Verfügung gestellt haben. –

0

Es ist hier:

else (D<0) 

Der Compiler ist verärgert, weil sie einen Körper für die else, und du hast nicht ein liefern wollte.

Die Syntax ist

if (condition) 
{ 

} 
else 
{ 

} 

Sie brauchen nicht den Compiler zu sagen, was die "else" Bedingung ist; es ist, wenn condition falsch ist.

+0

Danke, ich werde Ihre Punkte berücksichtigen und versuchen, meine Arbeit zu verbessern. –