【发布时间】:2013-04-30 05:45:49
【问题描述】:
我有一个结构体,定义如下:
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 的一些帮助以及如何在此特定情况下使用它。
【问题讨论】:
-
并非一切都与语法有关。还有语义。你试过什么?你知道函数指针吗?你在看哪本书?
标签: c arrays function typedef qsort