Вы читаете 5 чисел в элементы массива от userNum[1]
до userNum[5]
, но так как индексы массива начинаются с 0 в C, userNum[5]
не существует, и программа имеет неопределенное поведение при попытке сохранить числоза концом массива. Некоторая другая переменная модифицируется, и вывод является поддельным. Неопределенное поведение на самом деле может иметь гораздо худшие последствия, например, фиктивный кандидат, выигравший выборы с меньшим количеством голосов, чем его оппонент:)
Вот исправленная версия:
#include <stdio.h>
int main() {
int userNum[5];
int i;
int sum = 0;
for (i = 0; i < 5; ++i) {
printf("Please enter number %d:\n", i + 1);
if (scanf("%d", &userNum[i]) != 1) {
printf("invalid input\n");
return 1;
}
if (userNum[i] % 2 > 0) {
sum = sum + userNum[i];
}
}
printf("The sum of all odd integers is: %d\n", sum);
return 0;
}