Forum: PC-Programmierung Falsche Ausgabe


von Jens (Gast)


Angehängte Dateien:

Lesenswert?

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

von Lerninstructor (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.)

von Imonbln (Gast)


Lesenswert?

Um dich Besser mit C vertraut zumachen solltest du dir nochmal die 
Formatierung von printf ansehen, insbesondere das Type field.

von wendelsberg (Gast)


Lesenswert?

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

von wendelsberg (Gast)


Lesenswert?

Grr. Tippfehler.
1
Cskript.txt (703 Bytes, 13 Downloads)

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Sorry,
Code ist jetzt als c Datei im Anhang.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jens schrieb:
> Code ist jetzt als c Datei im Anhang.

Ja, aber die Fehler sind alle noch drin. ;-)

von Jens (Gast)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

ich glaube ich habe es.
DeltaL und IoutMax sollen als float deklariert werden und nicht als 
double.
Beim scanf kommt dann %f statt %d.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jens schrieb:
> Beim scanf kommt dann %f statt %d.

Nein. %d hat nichts mit "double" zu tun.

von cppbert (Gast)


Lesenswert?

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

von cppbert (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.