【发布时间】:2014-04-14 04:28:55
【问题描述】:
所以我的任务是抓取一个二进制文件,将其读入由结构组成的数组,然后根据结构中的数组对其进行排序。我坚持的部分是排序。我不确定我是否应该将它作为一个数组排序(因为二进制文件现在是一个数组)还是将它作为一个结构进行排序。下面是我的部分代码。
typedef struct {
char FlightNumber[7];
char OriginCode [5];
char DestinationCode [5];
int Date [];
} FLIGHT;
int main(){
FLIGHT FlightData [3000];
/*opens file, freads it into the array then closes*/
/*trying to sort it based on OriginCode*/
int compare (const FLIGHT *a, const FLIGHT *b) {
FLIGHT *ia = (FLIGHT *)a;
FLIGHT *ib = (FLIGHT *)b;
return strcmp(ia->OriginCode, ib->OriginCode);}
qsort( FlightData, 3000, sizeof( FLIGHT ), compare);
/*to see if sorting worked...*/
for (i = 0; i < 100; i++){
printf ("%i) %s, %s, %s\n", i, FlightData[i].FlightNumber, FlightData[i].OriginCode, FlightData[i].DestinationCode );
}
}
基本上我不知道如何编写比较。
【问题讨论】:
标签: c arrays sorting struct qsort