C C while-schleife bricht nicht ab (Anfängerproblem)

Schnitzelsemmel schrieb:
Für was nutzt man dann float und double überhaupt?
Als Daumenregel:
Für Dinge, die man ohnehin nur mit endlicher Genauigkeit Messen kann.

Bei Geld ist einfach das Problem, dass floating point Zahlen nicht garantieren, dass x+y == x-z+y+z immer wahr ist. Wenn ich also z.B. Geld (z) von einem Konto (x) abziehe und auf ein anderes (y) Übertrage kann dabei Geld verloren gehen oder aus dem nichts entstehen.

Schnitzelsemmel schrieb:
Und wo wir schon dabei sind: Wofür brauche Ich dauernd diese main-funktion?
Stark vereinfacht gesagt kannst du Instruktionen in C nur innerhalb von Funktionen schreiben und main() ist eben die erste selbstgeschriebene Funktion, die in deinem Programm aufgerufen wird. Im Gegensatz z.B. zu vielen Skriptsprachen, in denen einfach die erste Zeile im Quelltext ausgeführt wird.

blöderidiot schrieb:
Die main()- Funktion ist etwas für den C-Programmierer Heiliges, es ist der Punkt, an welchem die Laufzeitumgebung des Betriebssystems Dein Programm anspringt:
Sorry, jetzt muss ich klugscheißen: Streng genommen wird sie nicht vom OS aufgerufen, sondern von der C-Laufzeitumgebung - Zwischen dem Start eines Programms durch das Betriebssystem und dem start von main() werden - zumindest potentiell - noch eine ganze Reihe anderer Funktionen aufgerufen, die der Nutzer aber normalerweise nicht zu Gesicht bekommt.
 
Zuletzt bearbeitet:
Miuwa schrieb:
Sorry, jetzt muss ich klugscheißen: Streng genommen wird sie nicht vom OS aufgerufen, sondern von der C-Laufzeitumgebung - Zwischen dem Start eines Programms durch das Betriebssystem und dem start von main() werden - zumindest potentiell - noch eine ganze Reihe anderer Funktionen aufgerufen, die der Nutzer aber normalerweise nicht zu Gesicht bekommt.

Das ist kein "Klugscheißen", das stimmt schon, ich habe mich unpräzise und "populär" ausdgedrückt. Einige Compiler erlauben in ihrer Laufzeitumgebung sogar, eine Funktion vor und nach main() zu platzieren, z. B. gcc. Danke für die Berichtigung.
 
Ich habe jetzt mal aus lauter Doofheit weiter mit floats - als Hilfsvariablen, um den Münzeinwurf als Kommazahl eintippen zu können - gearbeitet und diese in int umgewandelt.
Bis mir die Idee kam, dass das irgendwie uncool ist, weil bei der Umwandlung immer abgerundet wird usw.

Ich hatte dann die Idee, dass man doch komplett mit int Arbeiten und einfach Ein- und Ausgabe formatieren könnte, a la:

Code:
#include <stdio.h>

int main(){
	int a = 255;
	int b = a/100;
	int c = a-b*100;
	printf("%d,%d €\n", b, c);


return 0;

}

Das hier ist nur ein Codebeispiel.
Aber das ist jetzt fachlich richtig, nicht fehleranfällig und prinzipiell nicht weiter optimierbar, oder?

edit: Bzw. euch kam die Idee, nicht mir, aber Ich hatte sie am Anfang falsch aufgefasst, als solle Ich mit int arbeiten aber float ausgeben ;)
 
Zuletzt bearbeitet:
Der Ausdruck
Code:
a - b * 100
ist derselbe wie
Code:
a % 100
und letzterer spart eine Variable. Ein halbwegs intelligenter Compiler sollte das aber erkennen können. Gerade aber keine Lust, das auch auszuprobieren.
 
Zurück
Oben