struct Mapmess
{
unsigned int Crosscolumn;
unsigned int Branch;
unsigned int Roadflag;
unsigned short Recordsize;
unsigned int LinkID;
unsigned short Roadnamesize;
char Roadname[30];
};
已经定义好的一个结构体,结构体如上,
然后我定义了一个结构体数组 struct Mapmess maps[length];
length的长度等于63600
然后我根据fopen函数把一个dat的相应的63600条信息读取到这个结构体数组中;
然后我利用数组里的linkid对这个数组信息进行排序;
程序如下:
void Sequencing()
{
int i,j,k;
//struct Mapmess temp;
unsigned int temp;
printf("正在排序中,请稍后....\n");
for(i=0;i<length-1;i++)
{
for(j=0;j<length;j++)
{
if(maps[i].LinkID<maps[j].LinkID)
{
temp = maps[i].LinkID;
maps[i].LinkID = maps[j].LinkID;
maps[j].LinkID = temp;
}
}
}
printf("排序完成!\n");
}
然而排序完后再输出LinkID
就变成了
0 40 140 240 340......一直到60000每次加100;
求大神告诉我一下这个到底是为什么啊
我测试了读取后LinkID都是正确
排序过程中也是对的
为什么出来就变了呢!