我做了一个检查数组边界的函数。为什么我的第二个解决方案与我的第一个解决方案不一样?这是一个优先问题,还是三元组的不正确使用?用C中的三元运算符进行重构
变通方法#1:
bool check_bounds(double* score, int size)
{
bool result=false;
for(int i=0; i<size; i++)
{
if(score[i] < 0.0 || score[i] > 100.0)
{
result=true;
}
}
return result;
}
// usage
if(check_bounds(score, size) { i--; }
变通方法#2:
bool check_bounds(double* score, int size)
{
bool is_valid;
for(int i=0; i<size; i++)
{
is_valid = (score[i] < 0.0 || score[i] > 100.0) ? true : false;
}
return is_valid;
}
我明确地看到你在说什么迈克!我绝对不希望在每次迭代中重新分配is_valid。感谢您的澄清。 – theGrayFox