Найти все трехзначные числа, сумма цифр которых кратна 7, и само число также делится на 7 - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c,d,i=100,s;
while(i<999){
a = i / 100;
b = i % 10;
c = i % 100;
d = c / 10;
s=a+b+d;
if ((s % 7 == 0) && (i % 7 == 0))
printf("%i",i);
}
return 0;
}
посмоторите что не так?
Решение задачи: «Найти все трехзначные числа, сумма цифр которых кратна 7, и само число также делится на 7»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c,d,i,e;
while (i<1000)
{
a = i / 100;
b = i % 10;
c = i % 100;
d = c / 10;
e=a+b+d;//7
if (e%7==0&&i%7==0&&i>100)
{
printf("%d ",i);
}
i+=7;
}
return 0;
}
Объяснение кода листинга программы
В этом коде ищется трёхзначное число, сумма цифр которого кратна 7, и само число также делится на 7. Вот список шагов, которые выполняются в коде:
- Включаются необходимые заголовочные файлы:
stdio.hвключает функции для ввода и вывода данных.math.hиспользуется для функцииsqrt, которая вычисляет квадратный корень.
- Создаются переменные:
a,b,c,d,i,eиспользуются для хранения промежуточных значений.
- Запускается цикл while:
- Переменная
iинициализируется значением 100. - Цикл выполняется до тех пор, пока
iменьше 1000.
- Переменная
- Внутри цикла выполняются следующие действия:
aприсваивается целая частьiделённая на 100.bприсваивается остаток от деленияiна 10.cприсваивается остаток от деленияiна 100.dприсваивается целая частьcделённая на 10.
- Вычисляется значение
eкак суммаa,bиd. - Проверяется, что
eделится на 7 без остатка, чтоiделится на 7 без остатка, и чтоiбольше 100. - Если все эти условия выполняются, то число
iвыводится на экран с помощью функцииprintf. - К
iдобавляется 7, чтобы перейти к следующей итерации цикла. - Цикл продолжается до тех пор, пока не будут выполнены все условия.
- Функция main() возвращает 0, что означает успешное выполнение программы.