Нахождение кумулятивной суммы из элементов в массиве с помощью цикла? - PullRequest
0 голосов
/ 10 мая 2018

Я хотел бы получить промежуточную сумму массива 'Array.' Но я испытываю трудности при попытке создать цикл for, который может перебирать этот массив и добавлять значения в массиве. Любые идеи будут оценены.

#include <stdio.h>

void cSum (int Array[], int length);

int main (void) {

    int Array[5]={1,-1,92,5,432};
    int length=5;

    printSum(Array, length);
}

void cSum (int Array[], int length) {

    int i; 
    int sum[length]; 
    int running=0; 
    int product[length]; 

    for (i=0; i<length; i++) {
         //Difficulty trying to get the cummulative sum
        sum[i]=Array[i];
        running=running+1
    }

    printf("sum: ");
    for (i=0; i<length; i++) {
        printf("%d ", sum[i]);
    }
}

1 Ответ

0 голосов
/ 10 мая 2018

Простой подход - установить первый элемент sum, а затем перейти к остальным элементам в цикле:

sum[0] = array[0];
for (i = 1; i < length; ++i){
    sum[i] = sum[i - 1] + array[i];
}

Я позволил себе переименовать Array в менее уникальное array. Также рассмотрим использование типа size_t для индексной переменной i вместо int.

...