Подсчитать количество оставшихся чисел в изображенном числе - C (СИ)

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

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

Дано натуральное число n. Удалить из записи числа все нули и единицы. Подсчитать количество оставшихся чисел в изображенном числе.
Листинг программы
  1. #include "stdio.h"
  2. int main()
  3. {
  4. int c,s=0,n;
  5. printf("Введите натуральное число=");
  6. scanf("%d",&n);
  7. if(n<=0)
  8. return 1;
  9. else
  10. for(c=0;n>0;n/=10)
  11. {if(n%10>1)
  12. {
  13. c++;
  14. s*=10;
  15. s+=n%10;
  16. }
  17. }
  18. printf("Новое число=%d\nКоличество новых чисел=%d\n",c,s);
  19. return 0;
  20. }
В переменную С у меня записывается количество оставшихся чисел после удаления это работает правильно а вот в S у меня записывается преобразованное число и туда как раз оно пишется не верно, а точно если ввести небольшое число то оно запишется задом на перед а если ввести большое число то оно тоже запишется задом наперед и еще появятся лишние цифры при этом переменная C будет показывать правильное значение.

Решение задачи: «Подсчитать количество оставшихся чисел в изображенном числе»

textual
Листинг программы
  1. #include "stdio.h"
  2.  
  3. int main()
  4. {
  5.     long long c,s=0,n, z, d;
  6.     printf("Введите натуральное число: ");
  7.     scanf("%Ld",&n);
  8.     if(n<=0) return 1;
  9.     for(c=0,z=1; n>0; n/=10) {
  10.       if((d=n%10)>1) {
  11.         c++;
  12.         s+=d*z;
  13.         z*= 10;
  14.       }
  15.     }
  16.     printf("Новое число= %Ld\nКоличество новых чисел= %d\n",s, c);
  17.     return 0;
  18. }

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

В этом коде:

  1. Объявляются переменные c, s, n, z, d.
  2. Пользователю предлагается ввести натуральное число.
  3. Если число введено некорректно (меньше или равно нулю), программа завершается.
  4. Инициализируются счетчики c и z и устанавливаются в 0 и 1 соответственно.
  5. Начинается цикл, который будет выполняться до тех пор, пока число n больше нуля.
  6. Внутри цикла выполняется проверка: если последняя цифра числа n больше 1, то она добавляется к c, а произведение этой цифры и z добавляется к s. Затем z умножается на 10.
  7. После выполнения цикла выводится новое число (s) и количество новых чисел (c).
  8. Программа завершается.

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


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

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

11   голосов , оценка 3.909 из 5

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

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

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