Числа сбрасываются при использовании счетчика в цикле Си
Есть задача: Имеется готовый массив, нужно получить среднее арифметическое для положительных и отрицательных чисел на Си
Но у меня происходит проблема, когда я хочу получить кол-во отрицательных чисел (с помощью счетчика), то переменные 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 шт):
Надо не забывать инициализировать переменные...
for (int i = 0; i < 10; ++i) {
Обратите внимание на = 0
P.S. Вас ничего не смущает в этом фрагменте? :)
printf(
"Негативные: %d\n" "Позитивные: %d",
positive, negative
);