Forum: PC-Programmierung Newtonverfahren in C


von TUDRESDENSTUDENT (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe versucht, dass Newtonverfahren in C zu programmieren. Ich 
wollte nur, dass es für einen eingegebenen Startwert die nächsten Werte 
ausrechnet. Dafür habe ich die Funktion rekursiv implementiert. Die 
Funktion soll rekursiv aufgerufen werden, wenn 'j' eingeben wurde. Das 
Problem ist, dass die if Abfrage anscheinend immer mit false ausgewertet 
wird in der Funktion. Vielleicht weiß ja einer von euch, was ich falsch 
mache. Ich schätze mal, dass es an der Rekursion liegt. Die Ausgabe 
funktioniert und die Zahlenwerte sind richtig berechnet.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

1
  printf("%i. x%i = %le Fehler x%i-x%i = %le\n",n,n,x,n,n-1,fabs(x-x0));
2
#if 1
3
  // C99 Modus. Ohne C99 eingabe beim Funktionsstart definieren
4
  char eingabe = getchar();
5
  printf("DEBUG: %c - %c\n", eingabe, tolower(eingabe));
6
  if(tolower(eingabe)=='j'){
7
#else
8
  if(tolower(getchar())=='j'){
9
#endif

von Karl H. (kbuchegg)


Lesenswert?

Oder auf deutsch:

Wenn du nicht weißt, warum der Vergleich eines Wertes mit einer 
Konstanten immer false ergibt, dann rate nicht rum, sondern lass dir die 
Dinge ausgeben. Dazu hast du nämlich (auch) einen Monitor, damit man da 
was hinschreiben kann. Und dann brauchst du nicht mehr vermuten oder 
raten, sondern siehst weiß auf schwarz was Sache ist.

von TUDRESDENSTUDENT (Gast)


Lesenswert?

Ok, habe das Problem gelöst. Ich hatte vergessen, dass scanf das \n 
nicht mehr aufnimmt.
Trotzdem danke für die Tips. Konnte natürlich nix eingelesen werden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.