回答編集履歴

4

追記

2022/05/24 16:41

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -19,3 +19,22 @@
19
19
  }
20
20
  ```
21
21
  `x = med(a[0], a[(n-1)/2], a[n-1]);`
22
+
23
+ **追記**
24
+ 三項演算子を使わずに書くと、
25
+ ```C
26
+ int med(int a, int b, int c)
27
+ {
28
+ if (a < b) {
29
+ if (b < c) return b; // a < b < c
30
+ if (a < c) return c; // a < c <= b
31
+ return a; // c <= a < b
32
+ }
33
+ else {
34
+ if (a < c) return a; // b <= a < c
35
+ if (b < c) return c; // b < c <= a
36
+ return b; // c <= b <= a
37
+ }
38
+ }
39
+ ```
40
+

3

コードの変更

2022/05/24 15:47

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -18,4 +18,4 @@
18
18
  printf("med(3, 2, 1) = %d\n", med(3, 2, 1));
19
19
  }
20
20
  ```
21
- `x = med(a[left], a[(n-1)/2], a[right]);`
21
+ `x = med(a[0], a[(n-1)/2], a[n-1]);`

2

コードの変更

2022/05/24 15:43

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -18,4 +18,4 @@
18
18
  printf("med(3, 2, 1) = %d\n", med(3, 2, 1));
19
19
  }
20
20
  ```
21
- `x = med(a[left], x, a[right]);`
21
+ `x = med(a[left], a[(n-1)/2], a[right]);`

1

追記

2022/05/24 15:42

投稿

kazuma-s
kazuma-s

スコア8224

test CHANGED
@@ -18,3 +18,4 @@
18
18
  printf("med(3, 2, 1) = %d\n", med(3, 2, 1));
19
19
  }
20
20
  ```
21
+ `x = med(a[left], x, a[right]);`