C语言程序设计生成销售清单

已经有一个商品信息和销售信息的两个结构体 怎么在销售之后相应减少商品信息的库存量

#include <stdio.h>

#define MAX_ITEMS 100

struct Product {
    int id;
    char name[100];
    int stock;
};

struct Sale {
    int product_id;
    int quantity;
};

void reduce_stock(struct Product products[], int num_products, struct Sale sale) {
    for (int i = 0; i < num_products; i++) {
        if (products[i].id == sale.product_id) {
            products[i].stock -= sale.quantity;
            break;
        }
    }
}

int main() {
    struct Product products[MAX_ITEMS];
    int num_products = 3;

    // 假设已经有了三个商品的信息
    products[0].id = 1;
    products[0].stock = 10;
    products[1].id = 2;
    products[1].stock = 20;
    products[2].id = 3;
    products[2].stock = 30;

    // 假设有一个销售记录
    struct Sale sale = {
        .product_id = 2,
        .quantity = 5,
    };

    reduce_stock(products, num_products, sale);

    // 现在第二件商品的库存量应该减少到15
    printf("Product 2 stock: %d\n", products[1].stock);

    return 0;
}