我正在做一个关于循环的练习并且有疑问。
我有一个 ints
数组,想要遍历整个数组以获得数组元素的 sum
。必须完成此迭代,在每次迭代中,对第一个元素和最后一个元素求和,在第二次迭代中,对第二个元素和最后一个元素求和减 1,依此类推。
如果我有一个包含偶数个元素的数组,我会这样做:
int main(){
int i,sum=0,arraySize=10;
int array[] = {1,2,3,4,4,4,7,8,9,10};
for (i=0;i <arraySize/2;i++){
sum+=array[i] + array[arraySize-i-1];
}
printf("The sum is %d\n", sum);
return 0;
}
但如果我有一个奇数,我会这样做:
int main(){
int i,sum=0,arraySize=11;
int array[] = {1,2,3,4,4,4,7,8,9,10,11};
for (i=0;i <(arraySize/2)+0.5;i++){
if (i != (arraySize/2)){
sum+=array[i] + array[arraySize-i-1];
}
else{
sum+=array[i];
}
}
printf("The sum is %d\n", sum);
return 0;
}
这是正确的方法吗?
最佳答案
我会这样做:
for(i=0, j= arraySize-1; i <= j; i++,j--){
sum += array[i];
if(i!=j){ sum+= array[j]; }
}
关于C 在 for 循环上的基本交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10513839/