質問するログイン新規登録

回答編集履歴

2

降順の説明を追加

2021/05/18 16:15

投稿

kazuma-s
kazuma-s

スコア8222

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 修正

2021/05/18 16:15

投稿

kazuma-s
kazuma-s

スコア8222

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
- printf(" %s\n", p->address);
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);