Warum geht mein Code für den x-Wert nur dann auf den Wert 2,4, wenn ich als Schrittweite 0,1 eingegeben habe? Wenn ich einen Wert wie .01 oder .001 gebe, geht es bis zu 2,5.C++ Euler Approximation
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double step;
double x0 = 1.0;
double y0 = 1.0;
double diffY;
std::cout << std::fixed;
std::cout << std::setprecision(2);
cout << "Enter step value: ";
cin >> step;
while (x0 <= 2.5) {
diffY = x0 + ((3*y0)/x0);
cout << x0 << " " << y0 << "\n";
x0+=step;
y0+=step*(diffY);
}
return 0; //initially defined the main function to return an int
}
Vielen Dank!
Sie sollten Schleife mit Integer-basierten Grenzen, und innerhalb der Schleife skalieren Sie die Werte nach unten. Andernfalls kann Ihre Schleife je nach Compiler, Compiler-Optionen usw. unterschiedlich oft ausgeführt werden. – PaulMcKenzie