Проблема возврата значения в функции c ++ - PullRequest
0 голосов
/ 09 марта 2020

Я только начинаю изучать c ++ и столкнулся с проблемой, когда я не могу вернуть значение в функцию. Вот функция.

static int total()
{
    for (int i = 0; i < 50; i++)
    {
        static int ongoing_sum = 0;
        static int total = ongoing_sum + assets[i];
    }

    return total;
}

Теперь возвращение total_sum изнутри for l oop - это не то, что я хочу, и если я перевожу его за пределы для l oop, это уже удалено из памяти (согласно моему пониманию). Как бы я вернул это total_sum значение? Кроме того, я не хочу использовать как итератор в моем коде. Спасибо

Редактировать: забыл упомянуть assets это массив int assets[50];.

Ответы [ 2 ]

3 голосов
/ 09 марта 2020

Объявите это вне l oop:

int total()
{
    int total_sum = 0;
    for (int i = 0; i < 50; i++)
    {
        total_sum += assets[i];
    }

    return total_sum;
}

Здесь я предполагаю, что вы не хотели делать это static, так как это не имеет особого смысла. Если это должно быть stati c, вы все равно можете сделать это stati c.

1 голос
/ 09 марта 2020

int total(int assets[]) { int total_sum = 0; for (int i = 0; i < 50; i++)
{ total_sum +=assets[i]; }

`return total_sum; }`
...