我有一个结构,定义如下:
typedef struct structure
{
char names[20];
int scores[4];
float average;
char letter;
} stuff;
并从该结构创建了这个数组:
stuff everything[13];
后来,一个函数调用:
display(everything);
在屏幕上显示一个基本图表,按顺序显示 13 个名称、13 个 test1s、13 个 test2s、13 个 test3s、13 个 test4s、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 的一些帮助以及如何在此特定情况下使用它。