回答編集履歴
4
追記
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
コードの変更
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[
|
21
|
+
`x = med(a[0], a[(n-1)/2], a[n-1]);`
|
2
コードの変更
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],
|
21
|
+
`x = med(a[left], a[(n-1)/2], a[right]);`
|
1
追記
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]);`
|