#include <stdlib.h> typedef struct stu { //char name; int age; float weight; double hight; }stu; int cmp_by_age(const void*e1, const void*e2) { return (int)(((stu*)e1)->weight - ((stu*)e2)->weight); } int main() { stu class1[3] = { {17,185.5,190.8}, {16,160.9,200.7}, {18,120.3,150.5} }; int sz = sizeof(class1) / sizeof(class1[0]); int i; qsort(class1, sz,sizeof(class1[0]), cmp_by_age); for (i = 0; i < 3; i++) { printf("%.1f\n", class1[i].weight); } return 0;
时间: 2024-04-09 09:33:03 浏览: 168
这段代码是使用C语言编写的,主要实现了一个结构体数组的排序功能。首先定义了一个名为`stu`的结构体,包含了学生的年龄(`age`)、体重(`weight`)和身高(`hight`)。然后定义了一个用于比较年龄的函数`cmp_by_age`,该函数通过比较学生的体重来确定大小关系。在`main`函数中创建了一个包含3个学生的数组`class1`并初始化数据。接下来,使用`qsort`函数对数组进行排序,排序规则使用了之前定义的比较函数`cmp_by_age`。最后,通过循环遍历数组并打印出每个学生的体重。
代码输出结果为:
```
120.3
160.9
185.5
```
这表示按照学生体重从小到大的顺序进行了排序。
阅读全文