Удалить из натурального числа все нечетные цифры (цикл for) - C (СИ)
Формулировка задачи:
Дано натуральное число. Удалить из него все нечетные цифры.
Вот код:
Какое бы число не вводил, на выходе "-14", что не так ? Никак не пойму
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- main()
- {
- unsigned long int n,res,i;
- int step;
- printf ("VVEDI NATURAL'NOE CHISLO \n");
- scanf ("%d",&n);
- res=0;
- for (i=n; n>1; i/10)
- {
- if (((i%10)%2==0))
- {
- step=1;
- res=res+(i%10)*pow(10,step);
- step++;
- }
- else
- {
- res=res+i/10;
- }
- }
- printf ("ZNACHENIE %d \n", &n);
- getch();
- return 0;
- }
Решение задачи: «Удалить из натурального числа все нечетные цифры (цикл for)»
textual
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- main()
- {
- int n,res,i;
- int ost,osst;
- printf ("VVEDI NATURAL'NOE CHISLO \n");
- scanf ("%d",&n);
- res=0;
- for (i=1; n>=10; n/10)
- {
- ost=n%10;
- osst=ost%2;
- if (osst==0)
- {
- res=res+ost*i;
- i=i*10;
- }
- else
- {
- res=res*i;
- i=i*10;
- }
- }
- printf ("ZNACHENIE %d \n", &res);
- getch();
- return 0;
- }
Объяснение кода листинга программы
Вывод на экран просьбы ввести натуральное число.
- Ввод числа и его сохранение в переменной
n
. - Инициализация переменной
res
значением 0. - Начинается цикл
for
, который выполняется до тех пор, покаn
больше или равно 10. - В каждой итерации цикла из
n
извлекается последняя цифра (остаток от деления на 10), сохраняется в переменнойost
. - Затем из
ost
извлекается остаток от деления на 2, сохраняется в переменнойosst
. - Если
osst
равно 0, то последняя цифра числа умножается на текущее значениеi
(которое начинается с 1 и увеличивается на 10 в каждой итерации) и добавляется кres
. - Если
osst
не равно 0, то текущее значениеres
умножается на текущее значениеi
и в цикле не происходит изменений. - После окончания цикла выводится на экран значение
res
. - Программа ожидает нажатия клавиши и завершает работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д