回答編集履歴
1
0 で割った時 error を表示するコードを追加
answer
CHANGED
@@ -53,4 +53,35 @@
|
|
53
53
|
{
|
54
54
|
if (scanf("%lf%lf%lf%lf", a, a+1, a+2, a+3) == 4) func(3, a[3]);
|
55
55
|
}
|
56
|
+
```
|
57
|
+
**追記**
|
58
|
+
なぜ、質問者は何も応答しないのでしょうか?
|
59
|
+
|
60
|
+
0 で割った時は error と表示するようにしてみました。
|
61
|
+
```C
|
62
|
+
#include <stdio.h>
|
63
|
+
|
64
|
+
int err = 0, a[4]; char o[3];
|
65
|
+
|
66
|
+
void func(int n, int v)
|
67
|
+
{
|
68
|
+
if (n == 0) {
|
69
|
+
printf("%d %c (%d %c (%d %c %d)) = ",
|
70
|
+
a[0], o[0], a[1], o[1], a[2], o[2], a[3]);
|
71
|
+
if (err) puts("error"); else printf("%d\n", v);
|
72
|
+
err = 0;
|
73
|
+
}
|
74
|
+
else {
|
75
|
+
n--;
|
76
|
+
o[n] = '+'; func(n, a[n] + v);
|
77
|
+
o[n] = '-'; func(n, a[n] - v);
|
78
|
+
o[n] = '*'; func(n, a[n] * v);
|
79
|
+
o[n] = '/'; func(n, v == 0 ? err = 1 : a[n] / v);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
int main(void)
|
84
|
+
{
|
85
|
+
if (scanf("%d%d%d%d", a, a+1, a+2, a+3) == 4) func(3, a[3]);
|
86
|
+
}
|
56
87
|
```
|