C语言写按照商品剩余数量排序的函数方法
时间: 2024-10-18 16:21:33 浏览: 32
在C语言中,如果你想编写一个函数来根据商品的剩余数量对商品数组进行排序,你可以使用标准库提供的`qsort()`函数,它是一个通用的快速排序算法。假设我们有一个结构体`Product`表示商品,包含名字`name`和剩余数量`quantity`两个字段,你可以这样做:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义商品结构体
typedef struct {
char name[50];
int quantity;
} Product;
// 比较函数,用于qsort()
int compare(const void *a, const void *b) {
const Product *itemA = (const Product *)a;
const Product *itemB = (const Product *)b;
return itemB->quantity - itemA->quantity; // 降序排列,如果想要升序则反过来
}
// 主函数中调用排序
void sortProducts(Product products[], int count) {
qsort(products, count, sizeof(Product), compare);
}
// 示例用法
int main() {
Product items[] = {{"Apple", 10}, {"Banana", 5}, {"Cherry", 20}};
int numItems = sizeof(items) / sizeof(items[0]);
sortProducts(items, numItems);
for (int i = 0; i < numItems; i++) {
printf("%s: %d\n", items[i].name, items[i].quantity);
}
return 0;
}
```
阅读全文