Hallo,
ich habe eine while Schleife vorgesetzt bekommen, verstehe diese aber nicht ganz.
while(1)
{
x = 10.0 \*x;
if ( (x+1) == x)
{
printf("X=X");
exit (0);
}
}
usw.
so, ich verstehe, dass es sich um eine Endlosschleife handelt… jedoch verstehe ich nicht wieso da („X = X“) ausgegeben wird (ausprobiert…)
weil (x+1) ja nie x sein kann, muss doch immer 1 größer X sein? Bei mir hat sich eine Barrikade aufgebaut.
Danke im Vorraus für eure Hilfe …
LG
S.I.E
Hallo,
while(1)
{
x = 10.0 *x;
if ( (x+1) == x)
{
printf(„X=X“);
exit (0);
}
}
usw.
so, ich verstehe, dass es sich um eine Endlosschleife
handelt… jedoch verstehe ich nicht wieso da („X = X“)
ausgegeben wird (ausprobiert…)
weil (x+1) ja nie x sein kann, muss doch immer 1 größer X
sein? Bei mir hat sich eine Barrikade aufgebaut.
Du hast leider einen interessanten Teil des Programms weg gelassen: die Deklaration von x. Ich vermute die sieht so aus:
flot x = 1.0;
oder so. Ein float kann ab einer bestimmten Größe ganze Zahlen nicht mehr exakt speichern, und sobald die Genauigkeit unter 1 sinkt, ändert die Addtion von 1 nichts mehr.
Für eine genauere Erklärung lies dir mal das hier durch:
http://docs.sun.com/source/806-3568/ncg_goldberg.html
Grüße,
Moritz
für diesen Zweck wäre
int x=1;
sinnvoller
für diesen Zweck wäre
int x=1;
sinnvoller
nein nicht wirklich
das wäre dann ne endlosschleife, die sich nie beendenwürde und nix macht.
Danke an Alle :=)
das mit float und ungenau hat mir richtig viel geholfen :=)