В вашем решении ваш код будет читать n
, равный -1
, и добавлять, а затем проверять, что является причиной этой проблемы.
Вы можете сделать это следующим образом:
do {
scanf("%d", &n);
if (n != -1) sum += n;
i++;
} while (n != -1);
Или даже лучше, вот так:
while (1) {
scanf("%d", &n);
if (n == -1) break;
sum += n;
i++;
}