Подсчитать количество оставшихся чисел в изображенном числе - C (СИ)
Формулировка задачи:
Дано натуральное число n. Удалить из записи числа все нули и единицы. Подсчитать количество оставшихся чисел в изображенном числе.
В переменную С у меня записывается количество оставшихся чисел после удаления это работает правильно а вот в S у меня записывается преобразованное число и туда как раз оно пишется не верно, а точно если ввести небольшое число то оно запишется задом на перед а если ввести большое число то оно тоже запишется задом наперед и еще появятся лишние цифры при этом переменная C будет показывать правильное значение.
Листинг программы
- #include "stdio.h"
- int main()
- {
- int c,s=0,n;
- printf("Введите натуральное число=");
- scanf("%d",&n);
- if(n<=0)
- return 1;
- else
- for(c=0;n>0;n/=10)
- {if(n%10>1)
- {
- c++;
- s*=10;
- s+=n%10;
- }
- }
- printf("Новое число=%d\nКоличество новых чисел=%d\n",c,s);
- return 0;
- }
Решение задачи: «Подсчитать количество оставшихся чисел в изображенном числе»
textual
Листинг программы
- #include "stdio.h"
- int main()
- {
- long long c,s=0,n, z, d;
- printf("Введите натуральное число: ");
- scanf("%Ld",&n);
- if(n<=0) return 1;
- for(c=0,z=1; n>0; n/=10) {
- if((d=n%10)>1) {
- c++;
- s+=d*z;
- z*= 10;
- }
- }
- printf("Новое число= %Ld\nКоличество новых чисел= %d\n",s, c);
- return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Объявляются переменные
c
,s
,n
,z
,d
. - Пользователю предлагается ввести натуральное число.
- Если число введено некорректно (меньше или равно нулю), программа завершается.
- Инициализируются счетчики
c
иz
и устанавливаются в 0 и 1 соответственно. - Начинается цикл, который будет выполняться до тех пор, пока число
n
больше нуля. - Внутри цикла выполняется проверка: если последняя цифра числа
n
больше 1, то она добавляется кc
, а произведение этой цифры иz
добавляется кs
. Затемz
умножается на 10. - После выполнения цикла выводится новое число (
s
) и количество новых чисел (c
). - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д