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

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

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

Дано натуральное число. Удалить из него все нечетные цифры. Вот код:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. main()
  5. {
  6. unsigned long int n,res,i;
  7. int step;
  8.  
  9. printf ("VVEDI NATURAL'NOE CHISLO \n");
  10. scanf ("%d",&n);
  11. res=0;
  12. for (i=n; n>1; i/10)
  13. {
  14. if (((i%10)%2==0))
  15. {
  16. step=1;
  17. res=res+(i%10)*pow(10,step);
  18. step++;
  19. }
  20. else
  21. {
  22. res=res+i/10;
  23. }
  24. }
  25.  
  26. printf ("ZNACHENIE %d \n", &n);
  27. getch();
  28. return 0;
  29. }
Какое бы число не вводил, на выходе "-14", что не так ? Никак не пойму

Решение задачи: «Удалить из натурального числа все нечетные цифры (цикл for)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4.  
  5. main()
  6.  
  7. {
  8. int n,res,i;
  9. int ost,osst;
  10.  
  11. printf ("VVEDI NATURAL'NOE CHISLO \n");
  12. scanf ("%d",&n);
  13. res=0;
  14.  
  15.  
  16. for (i=1; n>=10; n/10)
  17. {
  18.  ost=n%10;
  19.  osst=ost%2;
  20.  
  21.  if (osst==0)
  22.  {
  23.   res=res+ost*i;
  24.   i=i*10;
  25.  }
  26.  
  27.  else
  28.  {
  29.  res=res*i;
  30.  i=i*10;
  31.  }
  32.  
  33. }
  34.  
  35.  
  36. printf ("ZNACHENIE %d \n", &res);
  37. getch();
  38. return 0;
  39. }

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

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы