質問編集履歴

3

やってみたことを追加しました

2021/11/01 09:24

投稿

EE121
EE121

スコア5

test CHANGED
File without changes
test CHANGED
@@ -344,7 +344,7 @@
344
344
 
345
345
  }
346
346
 
347
- 試したこと
347
+ insertCELL_tail関数について試したこと
348
348
 
349
349
  take1
350
350
 
@@ -430,6 +430,24 @@
430
430
 
431
431
 
432
432
 
433
+ take4
434
+
435
+ void insertCELL_tail(CELL* header, int n) {
436
+
437
+ CELL* tail = generateCELL();/*ポインター*/
438
+
439
+ tail->value = n;
440
+
441
+ tail->next=NULL;
442
+
443
+ while (header->next != NULL)
444
+
445
+ header = header->next;
446
+
447
+ header->next = tail;
448
+
449
+ }
450
+
433
451
 
434
452
 
435
453
  ### 補足情報(FW/ツールのバージョンなど)

2

やってみたことを追加しました

2021/11/01 09:24

投稿

EE121
EE121

スコア5

test CHANGED
File without changes
test CHANGED
@@ -344,6 +344,92 @@
344
344
 
345
345
  }
346
346
 
347
+ 試したこと
348
+
349
+ take1
350
+
351
+ void insertCELL_tail(CELL* header, int n) {
352
+
353
+ CELL* tail = generateCELL();/*ポインター*/
354
+
355
+ tail->value = n;
356
+
357
+ tail->next=NULL;
358
+
359
+ while (header->next == NULL) {
360
+
361
+ header->next = tail;
362
+
363
+ tail->next = NULL;
364
+
365
+ return;
366
+
367
+
368
+
369
+ }
370
+
371
+
372
+
373
+ }
374
+
375
+
376
+
377
+ take2
378
+
379
+ void insertCELL_tail(CELL* header, int n) {
380
+
381
+ CELL* tail = generateCELL();/*ポインター*/
382
+
383
+ tail->value = n;
384
+
385
+
386
+
387
+ while (header->next == NULL) {
388
+
389
+ header->next = tail;
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+ }
398
+
399
+ tail->next=NULL;
400
+
401
+ }
402
+
403
+
404
+
405
+ take3
406
+
407
+ void insertCELL_tail(CELL* header, int n) {
408
+
409
+ CELL* tail = generateCELL();/*ポインター*/
410
+
411
+ tail->value = n;
412
+
413
+
414
+
415
+ while (header->next == NULL) {
416
+
417
+ header->next = tail;
418
+
419
+
420
+
421
+ return;
422
+
423
+
424
+
425
+ }
426
+
427
+ tail->next=NULL;
428
+
429
+ }
430
+
431
+
432
+
347
433
 
348
434
 
349
435
  ### 補足情報(FW/ツールのバージョンなど)

1

<code>ボタンを押して出てくる枠の中にコードを貼り付けました

2021/11/01 09:23

投稿

EE121
EE121

スコア5

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,148 @@
1
+ ``````ここに言語を入力
2
+
3
+ #include<stdio.h>
4
+
5
+ #include<stdlib.h>
6
+
7
+
8
+
9
+
10
+
11
+ typedef struct CELL {/*構造体の定義*/
12
+
13
+ int value;/*変数の定義*/
14
+
15
+ struct CELL* next;/*ポインターに関する変数の定義*/
16
+
17
+ }CELL;/*呼称*/
18
+
19
+ //関数
20
+
21
+ CELL* generateCELL() {/*generateCELLの定義*/
22
+
23
+ CELL* p;/*CELLポインター*/
24
+
25
+ if ((p = (CELL*)malloc(sizeof(CELL))) == NULL)/*条件分岐*/
26
+
27
+ {
28
+
29
+ printf("メモリ不足です\n");/*画面表示*/
30
+
31
+ exit(1);/*exit関数の使用*/
32
+
33
+ }
34
+
35
+ return p;/*戻り値*/
36
+
37
+ }
38
+
39
+
40
+
41
+ //関数
42
+
43
+ void insertCELL_head(CELL* header, int n) {/*insertCELL_head関数の定義*/
44
+
45
+
46
+
47
+ CELL* head = generateCELL();/*ポインター*/
48
+
49
+ head->value = n;/*代入 アロー演算子連発*/
50
+
51
+ head->next = header->next;/*代入*/
52
+
53
+ header->next = head;/*代入*/
54
+
55
+ }
56
+
57
+ //関数
58
+
59
+ void deleteCELL(CELL* header) {/*deleteCELL関数の定義*/
60
+
61
+ CELL* dele = header->next;/*ポインター*/
62
+
63
+ header->next = dele->next;/*代入*/
64
+
65
+ free(dele);/*free関数の使用*/
66
+
67
+ }
68
+
69
+
70
+
71
+ void insertCELL_tail(CELL* header, int n) {
72
+
73
+ CELL* tail = generateCELL();/*ポインター*/
74
+
75
+ tail->value = n;
76
+
77
+ tail->next=NULL;
78
+
79
+ while (header->next == NULL) {
80
+
81
+ header->next = tail;
82
+
83
+ tail->next = NULL;
84
+
85
+ return;
86
+
87
+
88
+
89
+ }
90
+
91
+
92
+
93
+ }
94
+
95
+
96
+
97
+
98
+
99
+ int main(void) {/*プログラム開始*/
100
+
101
+ CELL* header = generateCELL();
102
+
103
+ header->next = NULL;
104
+
105
+
106
+
107
+ insertCELL_head(header, 30);
108
+
109
+ insertCELL_head(header, 40);
110
+
111
+ deleteCELL(header);
112
+
113
+ insertCELL_head(header, 50);
114
+
115
+ deleteCELL(header);
116
+
117
+ insertCELL_head(header, 60);
118
+
119
+ insertCELL_head(header, 70);
120
+
121
+ insertCELL_tail(header, 20);
122
+
123
+
124
+
125
+ CELL* q = header->next;
126
+
127
+ while (q != NULL) {
128
+
129
+ printf("value%d \n", q->value);
130
+
131
+ q = q->next;
132
+
133
+
134
+
135
+ }
136
+
137
+ return 0;
138
+
139
+ }
140
+
141
+
142
+
143
+ コード
144
+
1
- ### 前提・実現したいこと
145
+ ```### 前提・実現したいこと
2
146
 
3
147
 
4
148
 
@@ -204,6 +348,22 @@
204
348
 
205
349
  ### 補足情報(FW/ツールのバージョンなど)
206
350
 
351
+ 以下のような骨組みがヒントとして与えられています
352
+
353
+ void insertCELL_tail(CELL* header, int n) {
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+ //NULLを指す最後のポインターを探る
362
+
363
+
364
+
365
+ }
366
+
207
367
 
208
368
 
209
369
  ここにより詳細な情報を記載してください。