回答編集履歴

4

成型

2019/11/18 03:02

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -106,8 +106,6 @@
106
106
 
107
107
  急に要件増えましたね。それだと上記の方法は使えません。
108
108
 
109
-
110
-
111
109
  動的にメモリを確保するのも面倒ですし、関数内で出力も済ませてしまいましょう。
112
110
 
113
111
  ```C

3

追記

2019/11/18 03:02

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
 
98
98
 
99
- 追記
99
+ 質問編集を受けて
100
100
 
101
101
  ---
102
102
 
@@ -104,9 +104,7 @@
104
104
 
105
105
 
106
106
 
107
- 見落としていました。
108
-
109
- それだと上記の方法は使えません
107
+ 急に要件増えましたね。それだと上記の方法は使えません。
110
108
 
111
109
 
112
110
 
@@ -158,7 +156,7 @@
158
156
 
159
157
 
160
158
 
161
-
159
+ C++のstd::vectorが使えると簡単なんですが。
162
160
 
163
161
 
164
162
 

2

追記

2019/11/18 03:01

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -96,6 +96,72 @@
96
96
 
97
97
 
98
98
 
99
+ 追記
100
+
101
+ ---
102
+
103
+ > 複数あったら複数表示させる
104
+
105
+
106
+
107
+ 見落としていました。
108
+
109
+ それだと上記の方法は使えませんね。
110
+
111
+
112
+
113
+ 動的にメモリを確保するのも面倒ですし、関数内で出力も済ませてしまいましょう。
114
+
115
+ ```C
116
+
117
+ #include <stdbool.h>
118
+
119
+
120
+
121
+ ...
122
+
123
+
124
+
125
+ bool print_Rs(...) {
126
+
127
+ bool found = false;
128
+
129
+ 三重ループ {
130
+
131
+ ...
132
+
133
+ if(zとpurposeが充分近い) {
134
+
135
+ 抵抗値を出力;
136
+
137
+ found = true;
138
+
139
+ }
140
+
141
+ }
142
+
143
+
144
+
145
+ if(!found) {
146
+
147
+ printf("指定された抵抗値%LfΩとなるR1,R2,R3の組み合わせはありません。\n", purpose);
148
+
149
+ }
150
+
151
+
152
+
153
+ return found; // 返しておくと後々便利かも
154
+
155
+ }
156
+
157
+ ```
158
+
159
+
160
+
161
+
162
+
163
+
164
+
99
165
  コードの貼り方について
100
166
 
101
167
  ---

1

修正

2019/11/18 02:59

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -30,7 +30,9 @@
30
30
 
31
31
  if(zとpurposeが充分近い) {
32
32
 
33
- return {R1, R2, R3};
33
+ Rs rs = {R1, R2, R3};
34
+
35
+ return rs;
34
36
 
35
37
  }
36
38
 
@@ -44,7 +46,9 @@
44
46
 
45
47
  // 探索失敗
46
48
 
47
- return {-1, -1, -1};
49
+ Rs ret = {-1, -1, -1};
50
+
51
+ return ret;
48
52
 
49
53
  }
50
54
 
@@ -89,3 +93,15 @@
89
93
  同じ値をとるか確認する際は、f1 == f2 ではなく abs(f1 - f2) < ε を判定に使って下さい。
90
94
 
91
95
  このときεは充分小さい適当な値です。
96
+
97
+
98
+
99
+ コードの貼り方について
100
+
101
+ ---
102
+
103
+ teratailには、コードを見やすく表示する機能があります。
104
+
105
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押して下さい。
106
+
107
+ ![C](4c6e48a3bd0707d89f61b901fd1f8915.gif)