今天我正在学习如何声明结构记录类型,如何在数组中应用结构化记录类型。所以基本上这就是我开始使用 struct 进行编码的方式。
struct myStock
{
string title;
double price;
int stock_lvl;
bool award;
};
myStock stock[4]; //store 4 record
void initialize()
{
stock[1].title = "Ilo Ilo";
stock[1].price = 35.55;
stock[1].stock_lvl = 15;
stock[1].award = 1;
stock[2].title = "Money Just Enough";
stock[2].price = 10.35;
stock[2].stock_lvl = 0;
stock[2].award = 0;
stock[3].title = "My Mother-in-Law";
stock[3].price = 22.50;
stock[3].stock_lvl = 5;
stock[3].award = 0;
stock[4].title = "Stars";
stock[4].price = 22.95;
stock[4].stock_lvl = 1;
stock[4].award = 1;
}
一切正常,但当我来到这部分时,这部分是数组将循环并检查 stock_lvl
的值并根据条件执行的地方。但我收到的错误是“结构错误表达式必须有 bool 类型”。我在这里做错了什么吗?我不要求答案,但也许有人可以向我解释吗?
int replenishStock()
{
for(int i=0; i<4; i++)
{
if(myStock[i].stock_lvl < 2)
{
myStock[i].award = true;
myStock[i].stock_lvl = +10;
}
else
myStock[i].stock_lvl = +5;
}
最佳答案
对于初学者来说,N 个元素数组的有效索引范围是 [0, N-1]。所以这些声明
stock[4].title = "Stars";
stock[4].price = 22.95;
stock[4].stock_lvl = 1;
stock[4].award = 1;
对于 4 个元素的数组无效。
至于错误消息,那么似乎不是像这样的语句中的结构名称
if(myStock[i].stock_lvl < 2)
^^^^^^^
你必须使用数组名
if(stock[i].stock_lvl < 2)
^^^^^^^
关于c++ - 结构错误表达式必须有 bool 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150066/