前提・実現したいこと
構造体を使って名前とフリガナと得点を表示しフリガナを昇順に表示したいです。c言語でエクリプスを使ってます。qsort関数を使わずにこのコードと同じ結果を得たいのですがどうしても分かりません。お力を貸してください。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
char name[30];
char furigana[30];
int score;
}Person;
int Furi(const Person *x,const Person *y){
return strcmp(x->furigana,y->furigana);
}
int Average(const Person *x,int no){
int i,y=0;
for(i = 0;i < no;i++){
y += x[i].score;
}
return y / no;
}
void print_Person(const Person x[],int no){
int i;
for(i = 0;i < no;i++){
printf("%-10s %10s %3d点\n",x[i].name,x[i].furigana,x[i].score);
}
}
int main (void){
Person x[] = {{"田辺 博之","タナベ ヒロユキ", 50},
{"鈴木 次郎","スズキ ジロウ", 78},
{"佐藤 卓","サトウ スグル", 95},
{"山田 拓郎","ヤマダ タクロウ", 55},
{"阿部 新之助","アベ シンノスケ", 70},
{"安藤 弘美","アンドウ ヒロミ",100},
{"木下 陽介","キノシタ ヨウスケ", 35},
{"小田 華","オダ ハナ", 70},
{"篠原 由美","シノハラ ユミ",100},
{"斎藤 巧","サイトウ タクミ", 60},
{"佐藤 大地","サトウ ダイチ",100},
};
int nx = sizeof(x) / sizeof(x[0]);
puts("ソート前");
print_Person(x,nx);
qsort(x,nx,sizeof(Person),(int(*)(const void *,const void *))Furi); puts("\nフリガナ昇順ソート後"); print_Person(x,nx); Average(x,nx); printf("平均点は%d点",Average(x,nx)); return 0;
}
c言語
ソースコード
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。