用c语言写一个查找设备和排序设备的函数
时间: 2024-03-12 13:48:14 浏览: 14
好的,我可以帮你写一个查找设备和排序设备的函数,以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char name[20];
int price;
} Device;
// 查找设备函数,返回找到设备的指针,如果找不到返回 NULL
Device* find_device(Device devices[], int device_count, char* name) {
for (int i = 0; i < device_count; i++) {
if (strcmp(devices[i].name, name) == 0) {
return &devices[i];
}
}
return NULL;
}
// 排序设备函数,按价格从低到高排序
void sort_device(Device devices[], int device_count) {
for (int i = 0; i < device_count - 1; i++) {
for (int j = i + 1; j < device_count; j++) {
if (devices[i].price > devices[j].price) {
Device temp = devices[i];
devices[i] = devices[j];
devices[j] = temp;
}
}
}
}
int main() {
// 测试代码
Device devices[5] = {
{"iPhone 12", 7999},
{"iPad Pro", 9999},
{"Macbook Air", 7499},
{"AirPods Pro", 1999},
{"Apple Watch", 3199}
};
int device_count = 5;
// 查找设备
char* name = "Macbook Air";
Device* device = find_device(devices, device_count, name);
if (device == NULL) {
printf("没有找到设备 %s\n", name);
} else {
printf("找到设备 %s,价格为 %d\n", device->name, device->price);
}
// 排序设备
sort_device(devices, device_count);
printf("排序后的设备列表:\n");
for (int i = 0; i < device_count; i++) {
printf("%s 价格:%d\n", devices[i].name, devices[i].price);
}
return 0;
}
```
这里定义了一个结构体 `Device`,包含设备名称和价格两个属性。`find_device` 函数可以查找设备数组中指定名称的设备,并返回指向该设备的指针;如果找不到则返回 NULL。`sort_device` 函数可以将设备数组按价格从低到高排序。
在 `main` 函数中,我们定义了一个包含 5 个设备的数组,并进行了测试。首先查找了设备名称为 Macbook Air 的设备,并输出了该设备的价格。然后调用了 `sort_device` 函数对设备数组进行排序,并输出了排序后的设备列表。