C++ 程序未进入故障诊断码状态。涉及结构 BBQ findBBQ(字符串日期) { 对于(int i=0;i
看起来您并没有真正查看日期数组中的第一个位置。您可能需要更像这样的位置C++ 程序未进入故障诊断码状态。涉及结构 BBQ findBBQ(字符串日期) { 对于(int i=0;i,c++,visual-studio,if-statement,visual-c++,struct,C++,Visual Studio,If Statement,Visual C++,Struct,看起来您并没有真正查看日期数组中的第一个位置。您可能需要更像这样的位置 BBQ findBBQ(string date) { for (int i = 0; i < 3; i++) { for (int j = 0; j < SIZE; j++) { if (pits[i][j].cal_date == date) { cout
BBQ findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return pits[i][j];
}
}
}
cout << "Unavail" << endl;
return <<<something that represents not found>>>;
}
BBQ*findBBQ(字符串日期)
{
对于(int i=0;i<3;i++)
{
对于(int j=0;j cout问题在于您的函数:您从是否查找返回,所以您的逻辑在else语句中不正确。您没有跟踪列表的每个元素。最快的解决方案是:
BBQ* findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return &pits[i][j];
}
}
}
cout << "Unavail" << endl;
return NULL;
}
BBQ findBBQ(字符串日期)
{
对于(int i=0;i<3;i++)
{
对于(int j=0;j 如果您只想在第一次迭代时返回,那么循环有什么意义呢?例如,您不想在else
子句中返回。使用所有警告和调试信息(g++-Wall-Wextra-g
)编译,然后使用调试器(gdb
)
BBQ findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return pits[i][j];
}
}
}
cout << "Unavail" << endl;
return <<<something that represents not found>>>;
}
BBQ* findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return &pits[i][j];
}
}
}
cout << "Unavail" << endl;
return NULL;
}
BBQ findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return pits[i][j];
}
else
{
cout << "Unavail" << endl;
// return pits[i][j];
}
}
}
}
void findBBQ(string date)
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (pits[i][j].cal_date == date)
{
cout << "Avail" << endl;
return;
}
}
}
cout << "Unavail" << endl;
}