質問編集履歴

1

内容の修正

2021/06/10 04:00

投稿

Savanof
Savanof

スコア33

test CHANGED
File without changes
test CHANGED
@@ -1,26 +1,22 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
- C言語において、多倍長整数の加算を行うプログラムの実装を考えています。加算の部分の実装は大体終わっているのですが、結果が上手く出力できなくて困っています。
3
+ C言語において、多倍長整数の加算を行うプログラムの実装を考えています。加算の部分の実装は大体終わっているのですが、計算結果を自分の定義した関数に渡し結果を出力する過程が上手くいかず、困っています。
4
+
5
+
6
6
 
7
7
  関数、構造体の引数や構造を変えれば、実装はできなくもないのですが、構造や引数は変えない方向性でお願いします。
8
8
 
9
-
10
-
11
9
  ### 該当のソースコード
12
10
 
13
11
  ソースコードの大まかなワークフローは下の様な形です。
14
12
 
15
13
  ```
16
14
 
17
- 1.キーボードからの入力をTest構造体に入れる
15
+ 1.キーボードからの入力を2つと、結果表示用の値をTest構造体に入れる
18
-
16
+
19
- 2.値をStructAdd関数に渡す
17
+ 2.(1.)で入れた値をStructAdd関数に渡す
20
-
21
- 3.計算の結果を引数rに入れて返す。
18
+
22
-
23
- 4.Test_print関数を介して、結果を表示する
19
+ 3.結果表示用の値(関数の引数 r ,入れた値pAdd_Answer)をTest_print関数を介して、結果を表示する
24
20
 
25
21
  ```
26
22
 
@@ -62,7 +58,7 @@
62
58
 
63
59
  char tmp = {0};
64
60
 
65
-
61
+
66
62
 
67
63
  for(i = 0, j = size - 1; i < size / 2; i++, j--){
68
64
 
@@ -74,7 +70,7 @@
74
70
 
75
71
  }
76
72
 
77
-
73
+
78
74
 
79
75
  return;
80
76
 
@@ -114,7 +110,29 @@
114
110
 
115
111
 
116
112
 
117
-
113
+ // 長整数の表示関数
114
+
115
+ // pを標準出力に表示する
116
+
117
+
118
+
119
+ void Test_print(struct Test *p){
120
+
121
+
122
+
123
+ char *String_Print;
124
+
125
+
126
+
127
+ String_Print = p->val;
128
+
129
+
130
+
131
+ printf("Number (in Func Print) is %s \n",String_Print);
132
+
133
+
134
+
135
+ }
118
136
 
119
137
 
120
138
 
@@ -130,7 +148,7 @@
130
148
 
131
149
  char *String_P , *String_Q , *String_R;
132
150
 
133
-
151
+
134
152
 
135
153
  String_P = p->val;
136
154
 
@@ -138,13 +156,13 @@
138
156
 
139
157
  String_R = r->val;
140
158
 
141
-
159
+
142
160
 
143
161
  int p_Size = strlen(String_P);
144
162
 
145
163
  int q_Size = strlen(String_Q);
146
164
 
147
-
165
+
148
166
 
149
167
  int N = max(p_Size, q_Size);
150
168
 
@@ -204,41 +222,17 @@
204
222
 
205
223
  String_R = Add_Str_Lis;
206
224
 
207
- printf("Number(in Func add) is %s \n",String_R);
225
+ printf("Number(in Func add) is %s \n",String_R);
226
+
208
-
227
+ Test_print(r);
209
-
210
-
228
+
229
+
230
+
211
- }
231
+ }
212
-
213
-
214
-
215
-
216
-
217
-
218
-
219
- // 長整数の表示関数
232
+
220
-
221
- // pを標準出力に表示する
233
+
222
-
223
-
224
-
225
- void Test_print(struct Test *p){
234
+
226
-
227
-
228
-
229
- char *String_Print;
235
+
230
-
231
-
232
-
233
- String_Print = p->val;
234
-
235
-
236
-
237
- printf("Number (in Func Print) is %s \n",String_Print);
238
-
239
-
240
-
241
- }
242
236
 
243
237
 
244
238
 
@@ -256,13 +250,11 @@
256
250
 
257
251
  char Add_Char_answer[MAX_INPUT];
258
252
 
259
- char Sub_Char_Answer[MAX_INPUT];
253
+
260
-
261
-
262
-
254
+
263
- struct Test Number1 ,MathSign, Number2 , Add_Answer , Sub_Answer;
255
+ struct Test Number1, Number2 , Add_Answer , Sub_Answer;
264
-
265
-
256
+
257
+
266
258
 
267
259
  struct Test *pNumber1 = &Number1;
268
260
 
@@ -284,7 +276,7 @@
284
276
 
285
277
  ReverseStr(input1);
286
278
 
287
-
279
+
288
280
 
289
281
  printf("Enter The Second Number \n");
290
282
 
@@ -296,7 +288,7 @@
296
288
 
297
289
 
298
290
 
299
-
291
+
300
292
 
301
293
  //入力をlonginit構造体に入れる。
302
294
 
@@ -310,17 +302,7 @@
310
302
 
311
303
  Struct_add(pNumber1 , pNumber2 , pAdd_Answer);
312
304
 
313
- Test_print(pAdd_Answer);
314
-
315
- printf("Nunber (in main()) is %s \n",Add_Answer);
316
-
317
-
318
-
319
-
320
-
321
- }
305
+ }
322
-
323
-
324
306
 
325
307
  ```
326
308
 
@@ -330,40 +312,18 @@
330
312
 
331
313
  Enter The First Number
332
314
 
333
- 198
315
+ 100
334
316
 
335
317
  Enter The Second Number
336
318
 
337
- 100
319
+ 200
338
-
320
+
339
- Number(in Func add) is 298
321
+ Number(in Func add) is 300
340
-
341
- Nunber (in main()) is
342
322
 
343
323
  Number (in Func Print) is
344
324
 
345
325
  ```
346
326
 
347
-
348
-
349
-
350
-
351
327
  ### 発生している問題・エラーメッセージ
352
328
 
353
- Struct_add関数内で加算の結果を表示するのは上手く動作しているのですが、main関数Test_print関数内で結果を表示するのが上手くいってないです。ポインターと構造体絡みのエラーだとは思うのですが、どの様に解決すればいいか分らないです。
329
+ Struct_add関数内で加算の結果を表示するのは上手く動作しているのですが、Struct_add関数内でTest_print関数に値を渡して結果を表示するのが上手くいってないです。ポインターと構造体絡みのエラーだとは思うのですが、どの様に解決すればいいか分らないです。
354
-
355
-
356
-
357
- ### 試したこと
358
-
359
-
360
-
361
- ここに問題に対して試したことを記載してください。
362
-
363
-
364
-
365
- ### 補足情報(FW/ツールのバージョンなど)
366
-
367
-
368
-
369
- ここにより詳細な情報を記載してください。