回答編集履歴

1

ソース追加

2017/10/14 16:32

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -13,3 +13,87 @@
13
13
  calc("+",5.5,6.5);で文字列"+"(ポインタ)を渡してるのにfloat calc(char op, float a, float b)で文字として受け取っている。また、calc()の中で演算(加減乗除)を選択(1〜4)させているのにswitch文が1と2しかない。return "op",a-b;は何をしたいのでしょう? switchに外れた場合のreturnがない。などなど・・・
14
14
 
15
15
  コンパイラがエラーを出しているはずなのでエラーやワーニングを見ましょう。
16
+
17
+ [追記]
18
+
19
+ BAが出てるようなので・・・今更ですが
20
+
21
+ ```c
22
+
23
+ #include <stdio.h>
24
+
25
+ //
26
+
27
+ double calc (char op, double a, double b);
28
+
29
+
30
+
31
+ int main()
32
+
33
+ {
34
+
35
+ double number;
36
+
37
+ number = calc('+', 5.5, 6.5);
38
+
39
+ printf("二つの合計 = %lf\n", number);
40
+
41
+ //
42
+
43
+ return 0;
44
+
45
+ }
46
+
47
+
48
+
49
+ double calc(char op, double a, double b)
50
+
51
+ {
52
+
53
+ double x = 0.0;
54
+
55
+
56
+
57
+ switch (op) {
58
+
59
+ case '+':
60
+
61
+ x = a + b;
62
+
63
+ break;
64
+
65
+ case '-':
66
+
67
+ x = a - b;
68
+
69
+ break;
70
+
71
+ case '*':
72
+
73
+ x = a * b;
74
+
75
+ break;
76
+
77
+ case '/':
78
+
79
+ x = a / b;
80
+
81
+ break;
82
+
83
+ default:
84
+
85
+ printf("該当なし\n");
86
+
87
+ }
88
+
89
+ return x;
90
+
91
+ }
92
+
93
+ ```
94
+
95
+ usr~/test >./a.out
96
+
97
+ 二つの合計 = 12.000000
98
+
99
+ usr~/test >