hi leute wir müssen für die schule ein programm das aus den variablen a b und c von ax²+bx+c die lösungsmenge(n) ausrechnet jetzt wollt ich fragen ob ihr mal drüber guckt ob das alles richtig ist bzw ob ich noch irgent ein fall vergessen hab oder ir irgent was anders machen würdet?
Code:
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
// Deklarationsteil
double a,b,c,diskriminante,loesungsmenge1,loesungsmenge2,zwischenrechnung;
int leeremenge,anzahlloesungen;
leeremenge=0;
// Eingabeteil
printf("Geben sie a ein\n");
scanf("%lf",&a);
fflush(stdin);
printf("Geben sie b ein\n");
scanf("%lf",&b);
fflush(stdin);
printf("Geben sie c ein\n");
scanf("%lf",&c);
fflush(stdin);
// Verarbeitungsteil
zwischenrechnung=(c/(-a));
diskriminante=(b*b)-(4*a*c);
if(a!=0 && b!=0 && c!=0)
{
if(diskriminante==0)
{
loesungsmenge1=(-b)/(2*a);
anzahlloesungen=1;
}
else if(diskriminante<0)
{
leeremenge=1;
}
else
{
loesungsmenge1=(-b-(sqrt((b*b)-(4*a*c))))/(2*a);
loesungsmenge2=(-b+(sqrt((b*b)-(4*a*c))))/(2*a);
anzahlloesungen=2;
}
}
else if(a==0 && b!=0)
{
loesungsmenge1=(-c)/b;
anzahlloesungen=1;
}
else if(zwischenrechnung>=0 && a!=0 && c!=0)
{
loesungsmenge1=sqrt(zwischenrechnung);
loesungsmenge2=-loesungsmenge1;
anzahlloesungen=2;
}
else
{
leeremenge=1;
}
// Ausgabeteil
if(leeremenge==1)
{
printf("Die Loesungsmenge ist Leeremenge\n");
}
else if(anzahlloesungen==1)
{
printf("x=%f\nL={%f}\n",loesungsmenge1,loesungsmenge1);
}
else
{
printf("x1=%f\nx2=%f\nL={%f;%f}\n",loesungsmenge1,loesungsmenge2,loesungsmenge1,loesungsmenge2);
}
return 0;
}
schon mal danke im vorraus.