ultimo-dragon
Exarch
Hallo
Da ich mich nicht ganz auskenne mit CundC++ wollte ich euch um Rat bitten.
Die Fragestellung:
Erstellen Sie das Programm Quadrat.c , das die quadratische Gleichung
x2 + px + q = 0 löst. Das Programm soll zuerst double p, q einlesen (natürlich
unterstützt durch eine Eingabeaufforderung!) und mittels der üblichen Lösungsformel
x1;2 = - p/2 + - √((p²/4) - q)
die Lösungen berechnen. Die Lösungen sollen nur ausgegeben
werden, wenn sie reell sind. Da dieses Programm die Quadratwurzel sqrt verwendet,
müssen Sie beim Übersetzen die Option -lm verwenden, um die Mathematikbibliothek
libm.so dazuzulinken. Ihr Compileraufruf könnte so aussehen: gcc -g -lm -o qg
quadgleichung.c Weiters sollten Sie die Headerdatei math.h in Ihr C-Programm
includieren. Können Sie auch ihr Programm so optimieren, dass möglichst wenig
Rechenoperationen darin vorkommen?
Nun da ich wirklich wenig Ahnung habe weiß ich nicht wirklich was ich da mchen soll.
Also bis jetzt hätte ich das hier:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
double p, q, x1, x2;
printf("Gib p ein: ");
scanf("%lf", &p);
printf("Gib q ein: ");
scanf("%lf", &q);
x1=(-p/2)+(sqrt(((p*p)/4)-q));
x2=(-p/2)-(sqrt(((p*p)/4)-q));
printf("x1 = %lf und x2 = %lf\n", x1, x2);
return EXIT_SUCCESS;
}
Also den Compiler habe ich so eingegeben: gcc -lm quadrat.c
Stimmt da iwas nicht? denn es kommt x1= -nan und x2 = -nan
HAHA ich hab es mit p=4 und q=5 probiert aber da kommt ja auch eine Leere Lösungsmenge heraus
Also stimmt es was ich da oben "zufällig" hinnein gekritzelt habe
Da ich mich nicht ganz auskenne mit CundC++ wollte ich euch um Rat bitten.
Die Fragestellung:
Erstellen Sie das Programm Quadrat.c , das die quadratische Gleichung
x2 + px + q = 0 löst. Das Programm soll zuerst double p, q einlesen (natürlich
unterstützt durch eine Eingabeaufforderung!) und mittels der üblichen Lösungsformel
x1;2 = - p/2 + - √((p²/4) - q)
die Lösungen berechnen. Die Lösungen sollen nur ausgegeben
werden, wenn sie reell sind. Da dieses Programm die Quadratwurzel sqrt verwendet,
müssen Sie beim Übersetzen die Option -lm verwenden, um die Mathematikbibliothek
libm.so dazuzulinken. Ihr Compileraufruf könnte so aussehen: gcc -g -lm -o qg
quadgleichung.c Weiters sollten Sie die Headerdatei math.h in Ihr C-Programm
includieren. Können Sie auch ihr Programm so optimieren, dass möglichst wenig
Rechenoperationen darin vorkommen?
Nun da ich wirklich wenig Ahnung habe weiß ich nicht wirklich was ich da mchen soll.
Also bis jetzt hätte ich das hier:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
double p, q, x1, x2;
printf("Gib p ein: ");
scanf("%lf", &p);
printf("Gib q ein: ");
scanf("%lf", &q);
x1=(-p/2)+(sqrt(((p*p)/4)-q));
x2=(-p/2)-(sqrt(((p*p)/4)-q));
printf("x1 = %lf und x2 = %lf\n", x1, x2);
return EXIT_SUCCESS;
}
Also den Compiler habe ich so eingegeben: gcc -lm quadrat.c
Stimmt da iwas nicht? denn es kommt x1= -nan und x2 = -nan

HAHA ich hab es mit p=4 und q=5 probiert aber da kommt ja auch eine Leere Lösungsmenge heraus

Also stimmt es was ich da oben "zufällig" hinnein gekritzelt habe

Zuletzt bearbeitet: