我在PHP中编写了一个非常简单的程序,但它一直说10 <5。
以下是代码:
for ($i = 0; $i<$m; $i++){
$lastIndex = $length - 1;
$v = $alice[$i];
echo "\r\n\r\n\r\n\r\n\r\n";
echo "Start, i = $i and alice[i] = $alice[$i] \r\n";
for ($j=$lastIndex; $j>=0; $j--){
echo "j = $j and newAr[j] = $ar[$j] \r\n \r\n";
echo "Before if, now check if ar[j] = $ar[$j] > $v = alice[i] \r\n
\r\n";
if ($ar[$j] > $v){
$rank = $j + 2;
$lastIndex = $j;
echo "Inside if: ar[j] = $ar[$j] > $v = alice[i], now rank = $rank =
$j + 2 = j + 2 \r\n \r\n ";
break;
}
else{
echo "went into else: ar[j] = $ar[$j] < $v = alice[i] \r\n \r\n";
}
if ($ar[$j] == $v){
$rank = $j + 1;
$lastIndex = $j;
break;
}
}
if ($j < 0){
$rank = 1;
}
echo "Alices point is $alice[$i] which gives rank $rank \r\n ";
//echo $rank;
}
我得到了这个输出:
开始,i = 0,alice [i] = 5 j = 4且newAr [j] = 10
之前如果,现在检查ar [j] = 10
5 = alice [i]
进入了其他地方:ar [j] = 10 &LT; 5 = alice [i]
j = 3且newAr [j] = 20
之前如果,现在检查ar [j] = 20&gt; 5 = alice [i]
内部if:ar [j] = 20&gt; 5 = alice [i],现在rank = 5 = 3 + 2 = j + 2
Alices指数为5,给出等级5
我仍然认为这是一个很小的错误,给人一种困惑, 但如果有人可以提供帮助,我现在已经忽略了它太长时间了。
如您所见,for循环运行代码的次数更多, 这是它唯一没有工作的时间。
在给定代码之前,我处理我使用的数组。但那不应该 做任何事。