【发布时间】:2019-09-04 04:20:42
【问题描述】:
我正在尝试从数组中删除奇数,但我不允许创建新数组来存储新值。
所以,如果我有arr[1,2,3,4,5,6,7,8,9]
那么我需要它是 arr[2,4,6,8] 以便 arr[0] 将是 2 而不是 1。
如果不创建一个新数组来存储值,然后将其反馈回具有新值的原始数组,我似乎无法删除偶数。
如果 arr[i] = 0 是奇数,我尝试将其设为奇数,但我无法删除 0 并将其替换为下一个偶数。
到目前为止,我有这个:
void removeOdd(int arr[], int& arrSize){
int i, j = 0;
int temp;
int newArrSize;
for(i = 0, newArrSize = arrSize; i < arrSize; i++){
if(arr[i] % 2 != 0){
arr[i] = 0;
}
}
arrSize = newArrSize;
}
【问题讨论】:
-
旁注:更喜欢
int newArrSize;而不是for(i = 0, newArrSize = arrSize;...。看你搞笑的人会更少。请注意,这不会更好,因为设置后newArrSize没有任何变化。