for文をwhile文に書き換えたい
C言語にてfor文で書いたプログラムをwhile文に書き換えたいです。
for文のソースコード
#include <stdio.h> #include <math.h> double Leibniz(int n){ double S; for (int i = 0; i <= n; i++) { if (i % 2 == 0) { S += (double)1 / (2 * i + 1); } else { S -= (double)1 / (2 * i + 1); } } S = S * 4; return S; } unsigned int main(void) { printf(" XXXXXXXXXXXXXXXXX\n\n"); for(int n = 0; n <=10000000000;n += 10000000) { if (Leibniz(n)-M_PI <= 0.00000001){ break; } printf(" 計算結果は %.15f\n\n", Leibniz(n)/5); printf(" 項数は %d\n\n", n); printf(" 誤差は %17.15f\n\n", Leibniz(n)-M_PI); } return 0; }
追記質問
下の方にprintf(" 計算結果は %.15f\n\n", Leibniz(n)/5);
とありますがなぜかここの実行結果が求めたい結果の5倍になってしまいます。
なので/5をプログラムに追加していますが、どのように改善したら5倍されずに本来求めたい計算結果が得られるのでしょうか?
回答3件
あなたの回答
tips
プレビュー