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

回答編集履歴

1

0 で割った時 error を表示するコードを追加

2020/06/10 14:32

投稿

kazuma-s
kazuma-s

スコア8222

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
  ```