复习:结构体数组
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 62 课,共 63 课。
挑战
简单创建一个 C 程序,使用结构体数组管理产品库存系统。你的程序应当:
- 定义一个名为
Product的struct,包含以下成员:- 一个大小为 30 的字符数组
name - 一个浮点数
price - 一个整数
stock
- 一个大小为 30 的字符数组
- 编写一个名为
findMostExpensive的函数,该函数:- 将一个
struct Product数组和一个整数size作为参数 - 返回一个整数,表示价格最高的产品的索引
- 使用循环遍历所有产品并比较它们的价格
- 返回第一个找到的最高价格产品的索引
- 将一个
- 编写一个名为
calculateTotalValue的函数,该函数:- 将一个
struct Product数组和一个整数size作为参数 - 返回一个浮点数,表示库存总价值
- 通过将每个产品的(价格 × 库存)相加来计算总价值
- 将一个
- 编写一个名为
findLowStock的函数,该函数:- 将一个
struct Product数组、一个整数size和一个整数threshold作为参数 - 返回一个整数,表示库存低于阈值的产品数量
- 使用循环统计库存低于阈值的产品数量
- 将一个
- 在 main 函数中:
- 创建一个包含 3 个
struct Product的数组,并命名为inventory - 按以下顺序读取每个产品的输入:名称、价格、库存
- 使用输入数据填充数组
- 按以下确切格式打印每个产品的信息:
Product [index]: [name] - Price: [price], Stock: [stock] - 调用
findMostExpensive函数,并按以下确切格式打印结果:Most expensive product: [name] - 调用
calculateTotalValue函数,并按以下确切格式以 2 位小数打印结果:Total inventory value: [total_value] - 读取一个表示低库存阈值的整数
- 使用该阈值调用
findLowStock函数,并按以下确切格式打印结果:Products with low stock: [count] - 检查价格最高的产品库存是否大于 10:
- 如果是:打印
Most expensive product is well stocked - 如果否:打印
Most expensive product needs restocking
- 如果是:打印
- 创建一个包含 3 个
这个挑战会测试你使用结构体数组、实现处理结构体数组的函数,以及对结构化数据进行各种计算和比较的能力。你将练习结构体数组的索引操作、数据处理函数的设计,以及组合多种操作来分析库存信息。
亲手试试
#include <stdio.h>
#include <string.h>
// TODO:在这里定义 Product 结构体
// TODO:在这里实现 findMostExpensive 函数
// TODO:在这里实现 calculateTotalValue 函数
// TODO:在这里实现 findLowStock 函数
int main() {
// 创建包含 3 个产品的数组
struct Product inventory[3];
// 读取每个产品的输入数据
for (int i = 0; i < 3; i++) {
scanf("%s", inventory[i].name);
scanf("%f", &inventory[i].price);
scanf("%d", &inventory[i].stock);
}
// TODO:输出每个产品的信息
// TODO:找出并输出价格最高的产品
// TODO:计算并输出库存总价值
// 读取低库存阈值
int threshold;
scanf("%d", &threshold);
// TODO:找出并输出库存不足的产品
// TODO:检查价格最高的产品库存是否充足
return 0;
}逻辑与流程中的所有课
自己练习: C 在线编译器