(C语言)对结构体数组进行排序

您所在的位置:网站首页 数组结构体排序 (C语言)对结构体数组进行排序

(C语言)对结构体数组进行排序

2024-07-07 11:50| 来源: 网络整理| 查看: 265

对结构体数组进行排序

题目:对结构体数组进行排序。

题目描述: struct Person{   int no;   int age;   int height; } 实现sort方法对结构体数组进行排序。 void sort(Person * array,int n);

根据no从小到大排序;如果no相同则根据age排序;如果age相同,则根据height排序。

注意: 遇到异常情况,输出"error";否则不要随意输出,会视为错误。

代码: #include #include

struct Person{ int no; int age; int height; }temp;

void sort(struct Person * array,int n) { int i = 0; int j = 0; if(n > 0 && array != NULL) { for (i = 0; i < n - 1; i++) { for (j = 0; j < n - 1 -i; j++) { if (array[j].no > array[j+1].no) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } else if (array[j].no == array[j+1].no && array[j].age > array[j+1].age) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } else if ((array[j].no == array[j+1].no) && (array[j].age == array[j+1].age) && (array[j].height > array[j+1].height)) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } } } else { printf(“error”); } }

这次的代码和我以前写的冒泡排序差不多,都很容易理解,还有一个更简单的写法就是在if里面把我上述的三个if里面的条件用||合起来,只需要写一个转换代码就可以了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3