Problem mit einer Quad. Gleichung in C++.. Kann mir jemand helfen???
-
#include <stdio.h>
#include <stdlib.h>
#include <math.h>int main(void)
{
float a;
float b;
float c;float x1;
float x2;float wurzel;
printf("Geben sie a ein:");
scanf("%f",&a);printf("Geben sie b ein:");
scanf("%f",&b);printf("Geben sie c ein:");
scanf("%f",&c);wurzel = b*b - 4*a*c;
{
if(a==0) // Geradengleichung
{
if(b==0)
{
if(c==0)
printf("alle x sind Loesungen\n");
else
printf("Keine Loesung\n");
}else
{
x1 = -c/b;
printf("x = %.2f\n",x1);
}}
else // Quad. Gleichung
{
if(wurzel < 0);
printf("Keine Lösung\n");else #####
{
if(wurzel == 0);
{
x1 = -b/(2*a);
printf("Doppelte Lösung: x = %.2f\n",x1);
}else
{
float diskri = sqrt(wurzel);
x1 = -b/(2a) + diskri;
x2 = -b/(2a) - diskri;printf("Zwei Lösungen:\nx1 = %.2f\nx2 = %.2f\n\n",x1,x2);
}
}}
}
system("pause");
return 0;
}Fehlermeldung bei #####
In function 'int main()'
expected primary-expression befor "else"
expected';' before "else"Habe grad angefangen mit c++, wär echt suepr wenn ihr mir helfen könnten,
vllt auch ein paar tipps geben um es zu vereinfachen oder sowasmfg
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum Mathematik verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Dieser Thread wurde von Moderator/in Christoph aus dem Forum Mathematik in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
##### ist irgendwie quatsch. mach das weg, vielleicht funktioniert's dann ja schon.
-
schau dir mal die klammerugen deine if und else genau an.
-
Wäre gut, wenn du die
CODE
Funktion benützen könntest und die Klammern entsprechend zurechtrückst. So ist es ein Unding, zu überprüfen, ob irgendetwas falsch ist.
Btw, was soll das #### machen oO ?
LG Jan
-
Bitte cpp Tags benutzen:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a; float b; float c; float x1; float x2; float wurzel; printf("Geben sie a ein:"); scanf("%f",&a); printf("Geben sie b ein:"); scanf("%f",&b); printf("Geben sie c ein:"); scanf("%f",&c); wurzel = b*b - 4*a*c; { if(a==0) // Geradengleichung { if(b==0) { if(c==0) printf("alle x sind Loesungen\n"); else printf("Keine Loesung\n"); } else { x1 = -c/b; printf("x = %.2f\n",x1); } } else // Quad. Gleichung { if(wurzel < 0); printf("Keine Lösung\n"); else ##### { if(wurzel == 0); { x1 = -b/(2*a); printf("Doppelte Lösung: x = %.2f\n",x1); } else { float diskri = sqrt(wurzel); x1 = -b/(2*a) + diskri; x2 = -b/(2*a) - diskri; printf("Zwei Lösungen:\nx1 = %.2f\nx2 = %.2f\n\n",x1,x2); } } } } system("pause"); return 0; }
-
Bei dem if über dem markierten else muss das Semikolon weg.
-
Wie schon gesagt das Semikolon ist falsch und zudem, was sollen die {} an den von mir markierten Stellen?
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a; float b; float c; float x1; float x2; float wurzel; printf("Geben sie a ein:"); scanf("%f",&a); printf("Geben sie b ein:"); scanf("%f",&b); printf("Geben sie c ein:"); scanf("%f",&c); wurzel = b*b - 4*a*c; { //Was soll das hier? if(a==0) // Geradengleichung { if(b==0) { if(c==0) printf("alle x sind Loesungen\n"); else printf("Keine Loesung\n"); } else { x1 = -c/b; printf("x = %.2f\n",x1); } } else // Quad. Gleichung { if(wurzel < 0); printf("Keine Lösung\n"); else ##### { if(wurzel == 0); { x1 = -b/(2*a); printf("Doppelte Lösung: x = %.2f\n",x1); } else { float diskri = sqrt(wurzel); x1 = -b/(2*a) + diskri; x2 = -b/(2*a) - diskri; printf("Zwei Lösungen:\nx1 = %.2f\nx2 = %.2f\n\n",x1,x2); } } } } //Was soll das hier? system("pause"); return 0; }
-
die ##### sollen nur anzeigen was er mir markiert wenn die fehlermeldung kommt, soll jetzt nich bewirken, wollt es euch nur zeigen
-
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(void) { float a; float b; float c; float x1; float x2; float wurzel; printf("Geben sie a ein:"); scanf("%f",&a); printf("Geben sie b ein:"); scanf("%f",&b); printf("Geben sie c ein:"); scanf("%f",&c); printf("Ihre Funktion: %.fx*x+%.fx+%.f = 0\n\n\n",a,b,c); wurzel = b*b - 4*a*c; if(a==0) // Geradengleichung { if(b==0) { if(c==0) printf("alle x sind Loesungen\n"); else printf("Keine Loesung\n"); } else { x1 = -c/b; printf("x = %.2f\n",x1); } } else // Quad. Gleichung if(wurzel < 0); printf("Keine Lösung\n"); else { if(wurzel == 0); { x1 = -b/(2*a); printf("Doppelte Lösung: x = %.2f\n",x1); } else { float diskri = sqrt(wurzel); x1 = -b/(2*a) + diskri; x2 = -b/(2*a) - diskri; printf("Zwei Lösungen:\nx1 = %.2f\nx2 = %.2f\n\n",x1,x2); } } system("pause"); return 0; }
habs jetzt etwas abgeändert, was ihr alles gesagt habt
trotzdem kommt die selbe meldung an der selben stelle
-
Mitchiv schrieb:
habs jetzt etwas abgeändert, was ihr alles gesagt habt
Kaum. Du hast ja immer noch ein Semikolon nach dem
if
und nach demelse
fehlt eine öffnende geschweifte Klammer.Mitchiv schrieb:
die ##### sollen nur anzeigen was er mir markiert wenn die fehlermeldung kommt, soll jetzt nich bewirken, wollt es euch nur zeigen
Dann setze nächstes Mal Dinge, die keinen Einfluss auf den Code haben, in Kommentare, sonst führt das - wie hier gesehen - nur zu Verwirrung. Und poste bitte nur den relevanten Code-Abschnitt (also dort, wo der Fehler war plus einige Zeilen vor- und nachher).
Benutze ausserdem bitte [cpp]- statt [code]-Tags. Was du machst, ist übrigens nicht C++, sondern C.