Поменять цифры в числе в обратном порядке - C (СИ)
Формулировка задачи:
С клавиатуры вводится любое число. Программа должна менять цифры в числе в обратном порядке. Например из 1097 сделает 7901.
Решение задачи: «Поменять цифры в числе в обратном порядке»
textual
Листинг программы
#include<stdio.h>
int main(void)
{
int d,n,i,cnt,shift;
d=0;
n=0;
i=0;
cnt=0;
shift=1;
scanf("%i",&d);
n=d;
do
{
cnt++;
n/=10;
}
while(n!=0);
for(i=0;i<cnt-1;i++) shift*=10;
n=d;
d=0;
do
{
d+=((n%10)*shift);
n/=10;
shift/=10;
}
while(shift!=0);
printf("%i\n",d);
getchar();
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется следующие действия:
- Ввод числа с помощью функции scanf.
- Вычисление количества цифр в числе (переменная cnt).
- Переменная shift инициализируется как 1.
- В цикле while число n делится на 10 до тех пор, пока оно не станет равным нулю (это позволяет получить все цифры числа в обратном порядке).
- В цикле for вычисляется количество сдвигов (переменная shift) для каждой цифры числа (переменная n).
- Число d инициализируется как 0.
- В цикле do происходит обратный сдвиг всех цифр числа (переменная n) в число d.
- Результат выводится на экран с помощью функции printf.
- Ввод символа новой строки с помощью функции getchar.
- Программа возвращает 0, что означает успешное завершение работы.