Hallo Zusammen, ich bin Anfänger in C bzw. Programmierung und brauche bitte Eure Hilfe. Das Programm soll nicht anders als paar Berechnungen machen. Problem ist das beim DeltaL und IoutMax die Ergebnisse stimmen nicht. Ich glaube dass ich hier was falsch gemacht habe. Danke
Jens schrieb: > Ich glaube dass ich hier was falsch gemacht habe. Du musst nicht glauben, du musst nach Fehlermeldungen/warnings suchen, lesen und verstehen. Und dich schlau machen was %d bedeutet und was Typen/Formatierung bedeutet.
Außerdem noch bei scanf den Unterschied zwischen %f und %lf vergegenwärtigen (in der Dokumentation nachlesen). C-Sourcecode bitte als .c-Dateien anhängen, nicht als .txt - dann gibt es eine automatische Code-Vorschau im Forum. Programmausgaben kann man aus dem Terminal auch per copy&paste mitschneiden, statt sie als Bild anhängen zu müssen. (In cmd.exe im Windows geht das über die rechte Maustaste.)
Um dich Besser mit C vertraut zumachen solltest du dir nochmal die Formatierung von printf ansehen, insbesondere das Type field.
Jörg W. schrieb: > C-Sourcecode bitte als .c-Dateien anhängen, n Und weil wir gerade dabei sind: [cose]Cskript.txt (703 Bytes, 13 Downloads)[/code] C Dateien sind Quellcode, nicht Skripte. wendelsberg
Ich bin dabei zu lesen/suchen was die Anderen empfohlen haben aber bis jetzt komme ich nicht weiter. Hat jemand eine Literatur Empfehlung wo Alles sauber erklärt ist? vielen Dank für Eure Support.
ich glaube ich habe es. DeltaL und IoutMax sollen als float deklariert werden und nicht als double. Beim scanf kommt dann %f statt %d.
Jens schrieb: > Hat jemand eine Literatur Empfehlung wo Alles sauber erklärt ist? Selbst Kernighan/Ritchie taugt dafür noch … aber es sollte doch genügend Tutorials im Web geben. Du musst dir Datentypen (Ganzzahlen vs. Gleitkomma) und ihre Abbildung in printf und scanf ansehen. Hinweis: die Behandlung zwischen "double" und "float" ist zwischen scanf und printf nicht identisch. Das liegt einfach daran, dass prinzipbedingt bei der printf-Funktion immer nur "double" ankommen kann, bei scanf dagegen Zeiger auf die jeweiligen Objekte. Diese Objekte haben im Speicher dann eine bestimmte Länge, die sich zwischen "float" und "double" unterscheidet. Passt das Format von scanf nicht zur Länge des Objekts, dann wird entweder zu wenig oder zu viel im Speicher geschrieben beim Einlesen. Vernünftige Compiler sollten das allerdings heutzutage auch warnen, wenn die Formate nicht passen, und man tut in jedem Falle gut daran, sich die Compiler-Warnungen genau anzusehen - auch, wenn es keine (fatalen) Fehlermeldungen sind.
Jens schrieb: > ich glaube ich habe es. > DeltaL und IoutMax sollen als float deklariert werden und nicht als > double. > Beim scanf kommt dann %f statt %d. %d könnte z.B. für dezimal stehen
Jens schrieb: > ich glaube ich habe es. > DeltaL und IoutMax sollen als float deklariert werden und nicht als > double. > Beim scanf kommt dann %f statt %d. http://www.cplusplus.com/reference/cstdio/printf/ 1. Tabelle, 1. Zeile, 1. Spalte
Vielen Dank für die Hilfe. ich habe vor mir noch einen langen Weg bis dass ich die Sprache lerne. Ich muss mich noch mit der Grundlage intensiver beschäftigen. Ich hoffe dass es klappt. VG Jens
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.