www.mikrocontroller.net

Forum: PC-Programmierung Newtonverfahren in C


Autor: TUDRESDENSTUDENT (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
  printf("%i. x%i = %le Fehler x%i-x%i = %le\n",n,n,x,n,n-1,fabs(x-x0));
#if 1
  // C99 Modus. Ohne C99 eingabe beim Funktionsstart definieren
  char eingabe = getchar();
  printf("DEBUG: %c - %c\n", eingabe, tolower(eingabe));
  if(tolower(eingabe)=='j'){
#else
  if(tolower(getchar())=='j'){
#endif

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TUDRESDENSTUDENT (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.