c语言数组中存放着很多对象,怎么根据对象中某个属性值的大小,将数组中的对象排序 用冒泡排序
时间: 2024-10-21 09:08:28 浏览: 13
在C语言中,如果你想根据数组中对象的某个属性值对整个数组进行排序,通常我们会使用结构体(struct)来封装对象及其相关的属性。对于冒泡排序算法,它是一种简单的比较排序算法,适合于小型数据集。下面是一个基本的例子,假设有这样一个结构体`Person`,包含姓名`name`和年龄`age`两个属性:
```c
typedef struct Person {
char name[50];
int age;
} Person;
void bubbleSort(Person arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j].age > arr[j + 1].age) {
// 交换当前元素和下一个元素的位置
Person temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
Person people[] = {
{"Alice", 25},
{"Bob", 20},
{"Charlie", 30},
{"David", 18}
};
int numPeople = sizeof(people) / sizeof(people[0]);
bubbleSort(people, numPeople);
for (int i = 0; i < numPeople; i++) {
printf("%s, %d\n", people[i].name, people[i].age);
}
return 0;
}
```
上述代码首先定义了一个`Person`结构体,并实现了冒泡排序函数`bubbleSort`,然后在`main`函数里创建了人员数组并对其进行排序。最后按年龄从低到高输出。
阅读全文