Programm zur Wurzelberechnung bereitet mir Probleme
-
Hallo Leute. Ich soll ein Programm erstellen, dass die Wurzel einer Zahl ausrechnet. Wenn die Zahl negativ ist, zb. -7 soll sqrt(x) = 2.683i, soll die Wurzel "komplex" angezeigt werden. Mein Problem ist, dass mir der Computer immer eine komische Zahl für x ausgibt... z.b irgendetwas wie x = 0464562. y wird immer als 0 ausgegeben. Was ist an meinem Programm falsch? Es wäre super, wenn ihr mir helfen könntet.
Danke Philipp
#include <stdio.h>
#include <math.h>int x;
float y;
char ch1 = 'J';main(void)
{
do
{
if(ch1 =='J' || ch1 == 'j')
{
printf("Geben Sie einen Wert fuer x ein:");
scanf("%d",&x);printf("\nEingabe\n");
printf("\n\n");
printf("Argument: x = %i \n\n\n",&x);
printf("Berechnung der Wurzel\n");
printf("______________\n\n");if (x >= 0)
{
y = (float)(sqrt(x));
printf("Ergebnis: sqrt(x) = %f\n\n",&y);
}else
{
y = (float)(sqrt((-1*x)));
printf("Ergebnis: sqrt(x) = %f i\n\n",&y);
}printf("Erneute Eingabe? (j/n)");
}
else
{
printf("Falsche Eingabe\n");
}
scanf("%s", ch1);
}
while(ch1 =='N' || ch1 == 'n');return 0;
}
-
Du musst beim Ausgeben y übergeben, nicht &y.
Und C ist nicht C#.
-
Ich habe einen Fehler gerade heraus gefunden. Ich habe in meinem ersten Programm in dem printbefehl "&x" geschrieben. Dadurch greife ich dann auf die Adresse zu anstatt auf den Wert ist das richtig? Allerdings habe ich jetzt das Problem, dass das Programm bei einer eingabe von J oder N von Windows abgebrochen wird. Eine erneute Eingabe ist also nicht möglich. Außerdem ist mir gerade aufgefallen, dass ich unten auch ch1==n anstatt ch1!=n zu schreiben. Trotzdem weiß ich nicht, wie ich die Schleife vernünftig abbrechen oder wiederholen kann. Danke nochmal!
-
Beim Einlesen entweder %s und ein char-Array oder %c und ein char, dann aber bitte dessen Adresse.
-
Danke. Klappt alles
Ich wußte nicht, das C# nicht gleich C ist. Da werde ich mir wohl ein anderes Forum suchen müssen. Trotzdem danke.
-
Ein anderes Forum brauchst du dir nicht suchen.
Er meinte, dass du ins Unterforum "C# und .Net" deine Frage gestellt hast.
Es gibt auch ein Unterforum "ANSI C", da könntest du das nächste Mal deine Fragen stellen.