Что не так в коде или чем его можно дополнить

Нужно реализовать следующее задание: Найти сумму отклонений по модулю нечетных чисел последовательности от числа 10. Окончание ввода – сумма больше 50 или кратна 3.Использовать массив нельзя.

Вот код программы который получился у меня:

#include <stdio.h> 

#include <locale.h>

#include <math.h>

int main()

{

setlocale(LC_ALL,"rus"); 

int a;

int sum = 0;

int i;

printf("Программа подсчитывает количество отрицательных нечетных чисел в последовательности.Выход из цикла число кратное 4\n\n\n");

while(1) //цикл while()

{

int remains = a % 10;

printf("Введите элемент ряда: ");

scanf("%d",&a);

sum += remains;

if(sum > 50 || sum % 3 == 0) 
{

break;

}

i++;

}

printf("Сумма равна = %d",sum);

return 0;

}

Но оно работает некорректно чем причина и что надо исправить?


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

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

Ваш основной цикл должен иметь такой вид:

while (1) //цикл while()
{
    printf("Введите элемент ряда: ");
    scanf("%d", &a);
    sum += abs(a-10);
    if (sum > 50 || sum % 3 == 0) break;
}

Вам же надо не остатки суммировать, а отклонения от 10 по модулю. И считать что-то можно только после того, как вы это что-то ввели.

→ Ссылка