回 帖 发 新 帖 刷新版面

主题:[求助]结构体的比较 纯c

要比较结构体只能一项项比较么?我要排序该怎么办啊?

回复列表 (共4个回复)

沙发

访问成员变量啊.

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为结构体变量*/
     }

板凳

定义比较函数。。

3 楼

谢谢楼上的回答,我想的是这个排序函数能重复利用的,没有解决办法么?

4 楼

可以,这个排序函数可以以一个比较函数做参数用

每次只用重写这个比较函数就可以了,比较简单的

我来回复

您尚未登录,请登录后再回复。点此登录或注册