回答編集履歴
2
降順の説明を追加
answer
CHANGED
@@ -117,7 +117,6 @@
|
|
117
117
|
putchar('\n');
|
118
118
|
}
|
119
119
|
|
120
|
-
|
121
120
|
int compare_name(PERSON_t *a, PERSON_t *b)
|
122
121
|
{
|
123
122
|
return strcmp(a->name, b->name);
|
@@ -167,4 +166,15 @@
|
|
167
166
|
|
168
167
|
1.追加入力 2.表示 3.名前でソート 4.住所でソート 0.終了: 0
|
169
168
|
```
|
170
|
-
この問題の出典は何ですか?
|
169
|
+
この問題の出典は何ですか?
|
170
|
+
|
171
|
+
**追記**
|
172
|
+
> また、降順についても、わかりやすい書き方がしたいです。
|
173
|
+
|
174
|
+
a と b を入れ替えて比較する関数を用意すればよいでしょう。
|
175
|
+
```C
|
176
|
+
int compare_name_rev(PERSON_t *a, PERSON_t *b)
|
177
|
+
{
|
178
|
+
return strcmp(b->name, a->name);
|
179
|
+
}
|
180
|
+
```
|
1
sort_person 削除、print_person 修正
answer
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
static PERSON_t *tail = NULL;
|
18
18
|
|
19
19
|
int add_person(int id);
|
20
|
-
int sort_person(int comp(PERSON_t *, PERSON_t *));
|
21
20
|
void print_person(PERSON_t *p);
|
22
21
|
PERSON_t * quick_sort(PERSON_t *a, int comp(PERSON_t *, PERSON_t *));
|
23
22
|
int compare_name(PERSON_t *a, PERSON_t *b);
|
@@ -114,13 +113,11 @@
|
|
114
113
|
|
115
114
|
void print_person(PERSON_t *p)
|
116
115
|
{
|
117
|
-
for (; p; p = p->next){
|
118
|
-
printf(" %s", p->name);
|
119
|
-
|
116
|
+
for (; p; p = p->next) printf(" %s %s\n", p->name, p->address);
|
120
|
-
}
|
121
117
|
putchar('\n');
|
122
118
|
}
|
123
119
|
|
120
|
+
|
124
121
|
int compare_name(PERSON_t *a, PERSON_t *b)
|
125
122
|
{
|
126
123
|
return strcmp(a->name, b->name);
|