C 在 for 循环上的基本交互

标签 c for-loop

我正在做一个关于循环的练习并且有疑问。

我有一个 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/

相关文章:

对 C 中的 "pass by reference"以及何时使用 & 或 * 感到困惑

C 错误 - wait()

c - 为什么 gdb 不能在没有二进制文件的情况下显示非符号堆栈跟踪?

c - 为什么c中会出现这个错误?

arrays - For 循环返回错误的元素数组

R:名称相同时在行中求和值

c - 随机播种段故障

Python for-in 循环前面有一个变量

java - 使用 Java 打印 1-100 之间的完美数字

c++ - 在基于范围的循环期间将元素添加到 vector c++11