次のように定義された構造体があります。
typedef struct structure
{
char names[20];
int scores[4];
float average;
char letter;
} stuff;
そして、その構造体からこの配列を作成しました:
stuff everything[13];
後で、次のように呼び出される関数:
display(everything);
は、13 個の名前、13 個のテスト 1、13 個のテスト 2、13 個のテスト 3、13 個のテスト 4、13 個の平均、および 13 個の文字による成績を順不同で表示する基本チャートを画面に表示します。参考までに、関数は次のようになります。
void display(stuff *everything)
{
int q = 0;
printf("\n\n Name \t\t E1 \t E2 \t E3 \t E4 \t Avg \t Grade");
for(q=0; q<13; q++)
{
printf("\n %s \t %d \t %d \t %d \t %d \t %.2f \t %c",
everything[q].names,
everything[q].scores[0],
everything[q].scores[1],
everything[q].scores[2],
everything[q].scores[3],
everything[q].average,
everything[q].letter);
}
return;
}
平均を取り、それらを互いに比較して、画面に表示すると、最初の結果が最高の平均になり、そこから下がるようにしたいと思います。「qsort()」を使用していると確信していますが、その構文を理解するのは非常に困難です。qsort のヘルプと、この特定のインスタンスでの使用方法を教えていただければ幸いです。