teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

説明の修正

2021/11/25 23:19

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  コードの投稿の仕方が間違っています。teratail のヘルプを見て質問を書き直してください。
2
2
 
3
- 変数 I が初期化されていません
3
+ 変数 I が初期化されないまま、1.88053 と比較されていま
4
4
  さらに n の初期値が 0 なので `(b - a) / (double)n` がとんでもないことになります。
5
5
  n は 2 から始めないといけないでしょう。
6
6
 

2

n の初期値について修正

2021/11/25 23:19

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  コードの投稿の仕方が間違っています。teratail のヘルプを見て質問を書き直してください。
2
2
 
3
- 変数 I と n が初期化されていません。
3
+ 変数 I が初期化されていません。
4
- もしも n が 0 だったら `(b - a) / (double)n` がとんでもないことになります。
4
+ さらに n の初期値が 0 なので `(b - a) / (double)n` がとんでもないことになります。
5
- n は 2から始めないといけないでしょう。
5
+ n は 2 から始めないといけないでしょう。
6
6
 
7
7
  I が 1.880533 になってほしいということは、
8
8
  I が 1.8805325以上 1.8805335未満になればいいということですから、

1

コードの修正

2021/11/25 23:16

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -33,7 +33,7 @@
33
33
  {
34
34
  int n = 2;
35
35
  double v = 0;
36
- while (fabs(v - 1.880533) > 0.0000005) {
36
+ while (fabs(v - 1.880533) >= 0.0000005) {
37
37
  v = simpson(0, 0.8, n);
38
38
  printf("%4d %f\n", n, v);
39
39
  n += 2;