Удалить из натурального числа все нечетные цифры (цикл for) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число. Удалить из него все нечетные цифры. Вот код:
#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;
}
Какое бы число не вводил, на выходе "-14", что не так ? Никак не пойму

Решение задачи: «Удалить из натурального числа все нечетные цифры (цикл 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;
}

Объяснение кода листинга программы

Вывод на экран просьбы ввести натуральное число.

  1. Ввод числа и его сохранение в переменной n.
  2. Инициализация переменной res значением 0.
  3. Начинается цикл for, который выполняется до тех пор, пока n больше или равно 10.
  4. В каждой итерации цикла из n извлекается последняя цифра (остаток от деления на 10), сохраняется в переменной ost.
  5. Затем из ost извлекается остаток от деления на 2, сохраняется в переменной osst.
  6. Если osst равно 0, то последняя цифра числа умножается на текущее значение i (которое начинается с 1 и увеличивается на 10 в каждой итерации) и добавляется к res.
  7. Если osst не равно 0, то текущее значение res умножается на текущее значение i и в цикле не происходит изменений.
  8. После окончания цикла выводится на экран значение res.
  9. Программа ожидает нажатия клавиши и завершает работу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы