這是我從 GeeksForGeeks 獲取的代碼。我正在嘗試理解代碼。
在函式的行中,如果它在它deleteEle
上面的回圈中運行多次,if(i==n) return n
會i
變成什么?n
< n
for
#include <iostream >
#include <cmath>
using namespace std;
int deleteEle(int arr[], int n, int x)
{
int i = 0;
for(i = 0; i < n; i )
{
if(arr[i] == x)
break;
}
cout << i << endl;
if(i == n)
cout<<i;
return n;
for(int j = i; j < n - 1; j )
{
arr[j] = arr[j 1];
}
return n-1;
}
int main() {
int arr[] = {3, 8, 12, 5, 6}, x = 13, n = 5;
cout<<"Before Deletion"<<endl;
for(int i=0; i < n; i )
{
cout<<arr[I]<<" ";
}
cout<<endl;
n = deleteEle(arr, n, x);
cout<<"After Deletion"<<endl;
for(int i=0; i < n; i )
{
cout<<arr[I]<<" ";
}
}
uj5u.com熱心網友回復:
如果它在它上面的 for 回圈
n
中運行了多次,我怎么會變成這樣?< n
因為可能會發生arr[i] == x
前一個 for 回圈中的 if 條件永遠不會滿足,這反過來意味著break
永遠不會執行,在這種情況下,最后一次迭代將遞增i
,以便 i 等于n
。
uj5u.com熱心網友回復:
在此回圈的最后一次迭代 ( if arr[i] != x for all i in range [0, n]
) 之后:
for(i = 0; i < n; i )
{
if(arr[i] == x)
break;
}
i
將等于n
如果break
不執行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470092.html
標籤:C