题目:某商城仓库中各种商品信息用如下结构体表示: struct Goods { char name[20]; //名称 char grade; //等级(用A/B/C等大写字母表示) double price; //单价 int storage; //存储量 }; 请补充完成函数: char *findGoods(Goods goodsList[], int num, char g); 其中goodsList为所有商品信息构成的数组,num为商品种类数量, g为商品等级。要求实现功能:找到仓库中等级为g的总价值最大 的商品,并返回其名称。 说明:仓库中所有商品的总价值都不相同,且至少存在一种等级为g的商品。
时间: 2024-04-12 11:29:43 浏览: 80
下面是补充完成的函数代码:
```c
char *findGoods(Goods goodsList[], int num, char g) {
char *maxValueName = NULL;
double maxValue = 0.0;
for (int i = 0; i < num; i++) {
if (goodsList[i].grade == g) {
double value = goodsList[i].price * goodsList[i].storage;
if (value > maxValue) {
maxValue = value;
maxValueName = goodsList[i].name;
}
}
}
return maxValueName;
}
```
这个函数通过遍历商品列表,找到等级为g的商品,并计算每个商品的总价值(单价乘以存储量)。然后比较总价值,找到最大值并记录对应的商品名称。最后返回总价值最大的商品名称。
相关问题
使用c++代码完成下述问题某商城仓库中各种商品信息用如下结构体表示: struct Goods { char name[20]; //名称 char grade; //等级(用A/B/C等大写字母表示) double price; //单价 int storage; //存储量 }; 请补充完成函数: char *findGoods(Goods goodsList[], int num, char g); 其中goodsList为所有商品信息构成的数组,num为商品种类数量, g为商品等级。要求实现功能:找到仓库中等级为g的总价值最大 的商品,并返回其名称。 说明:仓库中所有商品的总价值都不相同,且至少存在一种等级为g的商品。
以下是使用C++完成的代码,实现了函数`findGoods`的功能:
```cpp
#include <iostream>
#include <cstring>
struct Goods {
char name[20]; //名称
char grade; //等级(用A/B/C等大写字母表示)
double price; //单价
int storage; //存储量
};
char* findGoods(Goods goodsList[], int num, char g) {
double maxTotalValue = 0.0;
char* maxTotalValueName = nullptr;
for (int i = 0; i < num; i++) {
if (goodsList[i].grade == g) {
double totalValue = goodsList[i].price * goodsList[i].storage;
if (totalValue > maxTotalValue) {
maxTotalValue = totalValue;
maxTotalValueName = goodsList[i].name;
}
}
}
return maxTotalValueName;
}
int main() {
// 创建商品数组
Goods goodsList[5];
// 填充商品信息
strcpy(goodsList[0].name, "商品1");
goodsList[0].grade = 'A';
goodsList[0].price = 10.0;
goodsList[0].storage = 100;
strcpy(goodsList[1].name, "商品2");
goodsList[1].grade = 'B';
goodsList[1].price = 15.0;
goodsList[1].storage = 200;
strcpy(goodsList[2].name, "商品3");
goodsList[2].grade = 'A';
goodsList[2].price = 20.0;
goodsList[2].storage = 150;
strcpy(goodsList[3].name, "商品4");
goodsList[3].grade = 'C';
goodsList[3].price = 12.5;
goodsList[3].storage = 120;
strcpy(goodsList[4].name, "商品5");
goodsList[4].grade = 'A';
goodsList[4].price = 18.0;
goodsList[4].storage = 180;
// 调用函数查找等级为'A'的总价值最大的商品
char* result = findGoods(goodsList, 5, 'A');
// 打印结果
std::cout << "等级为'A'的总价值最大的商品名称:" << result << std::endl;
return 0;
}
```
在该代码中,我们定义了一个`Goods`结构体来表示商品的信息。然后,实现了函数`findGoods`来找到仓库中等级为g的总价值最大的商品,并返回其名称。
在`main`函数中,我们创建了一个包含5种商品的数组,并填充了商品的信息。然后,调用`findGoods`函数查找等级为'A'的总价值最大的商品,并打印结果。
注意:在实际使用中,应该根据具体需求进行适当的修改和错误处理。
解释代码//商品结构体 struct Commodity { string name ; //商品名称 double price ; //商品价格 int stock ; //商品库存
这段代码定义了一个名为 Commodity 的结构体,它包含了三个成员变量:
1. name:表示商品的名称,是一个字符串类型的变量。
2. price:表示商品的价格,是一个双精度浮点数类型的变量。
3. stock:表示商品的库存数量,是一个整数类型的变量。
这个结构体可以用来表示一个商品的信息,包括商品名称、价格和库存数量。
阅读全文