14.04.2020, 09:14
общий
это ответ
Здравствуйте, niktop1!
Ниже приведен текст программы. Если ввести четное число, программа сразу завершается, поскольку формально сумма отклонений равна нулю (сработает признак кратности - остаток от деления на 3 равен 0). Если следует дождаться хотя бы одного нечетного числа, то можно вместо
break;
написать
if( sumot>0 ) break;
Некоторые скобки лишние с учетом приоритета операторов, они использованы для лучшей читаемости текста.
Приложение:
#include <stdio.h>
int main()
{
/* Переменные для текущего числа и накопления искомой суммы */
int n;
int sumot=0;
while( 1 )
{
/* вводим с клавиатуры очередное число */
printf("Введите число: ");
scanf("%d",&n);
/* если число нечетное, то суммируем его отклонение от 10 */
if( n%2 )
sumot += n>10 ? (n-10) : (10-n);
/* Выводим текущую сумму отклонений числа от 10 */
printf("Сумма отклонений от 10: %d\n", sumot);
/* если сумма больше 50 или кратна 3, то завершаем программу */
if( (sumot>50) || (sumot%3 == 0) )
break;
}
printf("Программа завершена\n");
return 0;
}