回答編集履歴
2
降順の説明を追加
test
CHANGED
@@ -236,8 +236,6 @@
|
|
236
236
|
|
237
237
|
|
238
238
|
|
239
|
-
|
240
|
-
|
241
239
|
int compare_name(PERSON_t *a, PERSON_t *b)
|
242
240
|
|
243
241
|
{
|
@@ -337,3 +335,25 @@
|
|
337
335
|
```
|
338
336
|
|
339
337
|
この問題の出典は何ですか?
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
**追記**
|
342
|
+
|
343
|
+
> また、降順についても、わかりやすい書き方がしたいです。
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
a と b を入れ替えて比較する関数を用意すればよいでしょう。
|
348
|
+
|
349
|
+
```C
|
350
|
+
|
351
|
+
int compare_name_rev(PERSON_t *a, PERSON_t *b)
|
352
|
+
|
353
|
+
{
|
354
|
+
|
355
|
+
return strcmp(b->name, a->name);
|
356
|
+
|
357
|
+
}
|
358
|
+
|
359
|
+
```
|
1
sort_person 削除、print_person 修正
test
CHANGED
@@ -36,8 +36,6 @@
|
|
36
36
|
|
37
37
|
int add_person(int id);
|
38
38
|
|
39
|
-
int sort_person(int comp(PERSON_t *, PERSON_t *));
|
40
|
-
|
41
39
|
void print_person(PERSON_t *p);
|
42
40
|
|
43
41
|
PERSON_t * quick_sort(PERSON_t *a, int comp(PERSON_t *, PERSON_t *));
|
@@ -230,13 +228,7 @@
|
|
230
228
|
|
231
229
|
{
|
232
230
|
|
233
|
-
for (; p; p = p->next){
|
234
|
-
|
235
|
-
printf(" %s", p->name);
|
236
|
-
|
237
|
-
printf(" %s\n", p->address);
|
231
|
+
for (; p; p = p->next) printf(" %s %s\n", p->name, p->address);
|
238
|
-
|
239
|
-
}
|
240
232
|
|
241
233
|
putchar('\n');
|
242
234
|
|
@@ -244,6 +236,8 @@
|
|
244
236
|
|
245
237
|
|
246
238
|
|
239
|
+
|
240
|
+
|
247
241
|
int compare_name(PERSON_t *a, PERSON_t *b)
|
248
242
|
|
249
243
|
{
|