Fehler bei der Ausgabe
-
Hallo ich habe folgende schleife erzeugt, welches nicht funktioniert.
#include <stdio.h> int main(){ double a, b; a = 2.05; for(b=0.00; b<3.00;b+=0.01){ if(a==b) printf("%.2lf\n", a); printf("%.2lf \t",b); } return 0; }
hier findet kein vergleich statt. seht ihr meinen fehler??
aber sobald ich statt a==b a>b oder a<=b o.ä. schreibe, klappt es immer.schreibe ich statt der for schleife nur b=2.05 oder b=2.00 funktioniert der
vergleich mit a==b.aber so wie ich es eigentlich gerne hätte eben nicht.
würde mich sehr auf eine hilfe freuen.
mfg
-
Fließkommatypen kann man wegen der "eingebauten" Ungenauigkeit nicht auf Gleicheit prüfen. Rechne in Hundertsteln, dann kannst du Ganzzahlen benutzen, und teile für die Ausgabe durch 100.
-
hmmm, wie soll das denn aussehen.
habe ich nicht verstanden.
in hundertstel wäre doch a= 0,0205 (statt a= 2.05)
und dann durch 100 teilen(wie du gemeint hast) wäre 0,000205.
muss ich es nicht dann multiplizieren statt dividieren.
hierdurch verstehe ich einfach nicht, wie die schleife danach aussieht.
-
mygast schrieb:
in hundertstel wäre doch a= 0,0205 (statt a= 2.05)
Nein, 2.05 sind doch 205 Hundertstel.
Ich hatte mir das so gedacht:
#include <stdio.h> int main(){ int a, b; a = 205; for(b=0; b<300;b+=1){ if(a==b) printf("%.2lf\n", a / 100.0); printf("%.2lf \t",b / 100.0); } return 0; }
-
dankeschön jetzt klappt es wirklich super.
habe die schleife erweitert und bin auf weitere probleme gestoßen
möchte eine ausgabe wie diese:
......x....y.....
....x....y.......
..y....x.........
usw.
dachte diese schleife würde klappen, tut es leider nicht, wo liegt denn mein
denkfehler?for(i=0;i<25;i++){ for(laeufer=0;laeufer<=10000;laeufer+=1){ if(x==laeufer) printf("(1)%.2lf\t",x); else if(y==laeufer) printf("(2)%.2lf\t", y); // printf("."); } printf("."); }
-
Ehrlich gesagt, ich sehe überhaupt keinen Zusammenhang zwischen der gewünschten Ausgabe und dem Code. Und mit "tut es leider nicht" kann ich auch nichts anfangen.
Beschreib doch mal ein wenig genauer, was der Code tun soll, und was er statt dessen tut.
-
MFK schrieb:
Ehrlich gesagt, ich sehe überhaupt keinen Zusammenhang zwischen der gewünschten Ausgabe und dem Code. Und mit "tut es leider nicht" kann ich auch nichts anfangen.
Beschreib doch mal ein wenig genauer, was der Code tun soll, und was er statt dessen tut.
wollte nicht posten aber mir gehts genauso wie dir -.-