Ich benutze win7 64 bit mit netbeans 7.3.1
Die Hochschulpc's laufen unter win xp auchh mit netbeans 7.3.1
Das Programm sieht folgendermaßen aus:
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
float a = 0;
int b = 0;
while ( a == b ) {
a++ ;
b++ ;
}
b-- ;
cout << b << endl;
return 0;
}
Auf meinem Home pc gibt er b als 16777217 aus
Auf den Hochschul pc's wird es als 16777216 (ist die richtige Lösung aus)
Im Debugger habe ich nachvollziehen können, dass wenn die Variable a = 16777216 ist und b = 16777217 ist, das trotzdem noch die while Schleife a == b erfüllt ist, dementsprechend versucht er beide nochmals zu inkrementieren, da die max pos ganze zahl unter float = 16777216 ist wird dieser Wert entsprechend nicht verändert, die int zahl b wird auf 16777218 erhöht und erst dann wird erkannt das a == b nichtmehr erfüllt ist.
Dies ist auf den Hochschul Rechnern nicht der Fall.
Ich hoffe ihr konntet meine Beschreibung nachvolllziehen, ansonsten würde ich mich über zwischenfragen freuen.
Bitte um Hilfe

MfG