Что не так в коде или чем его можно дополнить
Нужно реализовать следующее задание: Найти сумму отклонений по модулю нечетных чисел последовательности от числа 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 по модулю. И считать что-то можно только после того, как вы это что-то ввели.