Числа сбрасываются при использовании счетчика в цикле Си

Есть задача: Имеется готовый массив, нужно получить среднее арифметическое для положительных и отрицательных чисел на Си

Но у меня происходит проблема, когда я хочу получить кол-во отрицательных чисел (с помощью счетчика), то переменные positive, negative равняются нулю.

Код, когда я числа разделил на позитивные и негативные (ЗДЕСЬ ВСЁ ОК):

#include <stdio.h>
#include <locale.h>

int - main()
{
    setlocale(LC_ALL, "Russian");

    int numbers[10] = {1, 3, 6, 0, -8, 5, -2, -3, -15, 4};
    int positive = 0, negative = 0;

    for (int i; i < 10; ++i) {
        if (numbers[i] < 0) {
            negative += numbers[i];
        } else {
            positive += numbers[i];
        }
    }

printf(
    "Негативные: %d\n"
    "Позитивные: %d", 
    positive, negative
);

return 0;

} Вывод: 19 -28

Но когда я хочу уже получить кол-во негативных чисел, с помощью небольших изменений:

int positive = 0, negative = 0, count = 0;

for (int i; i < 10; ++i) {
    if (numbers[i] < 0) {
        negative += numbers[i];
        count++;
    } else {
        positive += numbers[i];
    }
}

То здесь у меня вывод: 0 0

Почему так? Я пробовал и использовать ++count, count++, count += 1, не знаю, с чем связана проблема.


Ответы (1 шт):

Автор решения: Harry

Надо не забывать инициализировать переменные...

for (int i = 0; i < 10; ++i) {

Обратите внимание на = 0

P.S. Вас ничего не смущает в этом фрагменте? :)

printf(
    "Негативные: %d\n" "Позитивные: %d", 
       positive,          negative
);
→ Ссылка