主题:[求助]结构体的比较 纯c
pjfwarlock
[专家分:0] 发布于 2006-10-15 13:58:00
要比较结构体只能一项项比较么?我要排序该怎么办啊?
回复列表 (共4个回复)
沙发
独行者 [专家分:1280] 发布于 2006-10-16 19:02:00
访问成员变量啊.
如
typdef struct b {
char name[10];
.
.
.
float zf;/*总分*/
} student;
student a[10];
假设a 数组已赋值,现在要按总分降序排序可以这样:
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i].zf<a[j].zf)
{
t=a[i];a[i]=a[j];a[j]=t; /*t为结构体变量*/
}
板凳
argentmoon [专家分:13260] 发布于 2006-10-16 19:16:00
定义比较函数。。
3 楼
pjfwarlock [专家分:0] 发布于 2006-10-18 15:40:00
谢谢楼上的回答,我想的是这个排序函数能重复利用的,没有解决办法么?
4 楼
argentmoon [专家分:13260] 发布于 2006-10-18 18:39:00
可以,这个排序函数可以以一个比较函数做参数用
每次只用重写这个比较函数就可以了,比较简单的
我来回复