ステップサイズとして0.1を入力したとき、私のコードは出力としてx値だけ2.4になるのはなぜですか? .01または.001のような値を入力すると、2.5になります。C++オイラー近似
#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
}
ありがとうございます!
整数ベースの制限を使用してループし、ループ内で値を下げてください。そうでなければ、ループはコンパイラ、コンパイラオプションなどによって異なる回数実行される可能性があります。 – PaulMcKenzie