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

回答編集履歴

1

表示に分かりやすい記号を追加した。出力例を追記した

2020/07/24 18:44

投稿

e-watt
e-watt

スコア84

answer CHANGED
@@ -3,12 +3,30 @@
3
3
  ```C
4
4
  if( f(x0)*f(xc)<0.0 ){ //範囲を縮める方向の判定
5
5
  xn=xc;
6
- printf("N:%.6f %.6f\n",x0,xn);
6
+ printf("N:%.6f <%.6f\n",x0,xn);
7
7
 
8
8
  }else{
9
9
  x0=xc;
10
- printf("0:%.6f %.6f\n",x0,xn);
10
+ printf("0:%.6f> %.6f\n",x0,xn);
11
11
  }
12
12
  ```
13
13
  ついでながら、同じフォーマットの表示には「見分けるための目印」を付けておくと
14
- デバッグがはかどりますよ。
14
+ デバッグがはかどりますよ。
15
+
16
+ ```Console
17
+ x0 xn
18
+ s:1.000000 2.000000
19
+ 0:1.500000> 2.000000
20
+ N:1.500000 <1.750000
21
+ 0:1.625000> 1.750000
22
+ N:1.625000 <1.687500
23
+ 0:1.656250> 1.687500
24
+ 0:1.671875> 1.687500
25
+ N:1.671875 <1.679688
26
+ N:1.671875 <1.675781
27
+ N:1.671875 <1.673828
28
+ 0:1.672852> 1.673828
29
+ ```
30
+ どちらから寄せたか判りやすい…んじゃないかと思います。
31
+ 元のロジック(括弧なし)で実行すると、
32
+ 「(小さい方から)寄せてないのに表示が出た」と気付けます(たぶん)