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

質問編集履歴

1

修正中のコードを載せました。

2020/07/25 00:50

投稿

ceg34ry
ceg34ry

スコア5

title CHANGED
File without changes
body CHANGED
@@ -42,4 +42,30 @@
42
42
  ```
43
43
  ↑これもうまくいかなかった例です。
44
44
  ### 補足情報(FW/ツールのバージョンなど)
45
- 実行環境はpaiza.ioです。
45
+ 実行環境はpaiza.ioです。
46
+
47
+ ###修正中のコード
48
+ 頂いた回答をもとに修正しました。探索したい値(val)が3,7,11なら正常に探索結果が表示され、
49
+ 1,5,9,13なら、何も表示されない状況です。まだうまく動作しません。以下修正中のコードです。
50
+ ```C
51
+ #include <stdio.h>
52
+
53
+ int main(void){//二分探索法
54
+
55
+ int array[7]={1,3,5,7,9,11,13};
56
+ int lo=0, mid, hi=6;
57
+ int val=11;//探索したい値
58
+
59
+ while(lo < hi){//継続条件修正済み
60
+ mid = (lo + hi) / 2;
61
+ if(array[mid] < val){
62
+ lo = mid + 1;
63
+ }else if(array[mid] > val){
64
+ hi = mid - 1;
65
+ }else{
66
+ printf("値「%d」は配列の[%d]番目で発見しました",val,mid);
67
+ break;//追記
68
+ }
69
+ }
70
+ }
71
+ ```