Поменять местами первую и последнюю цифры в записи числа - C (СИ)
Формулировка задачи:
Дано натуральное число n. Поменять местами первую и последнюю цифры в записи числа. Подсчитать количество цифр в изображение числа. Не могу понять.
#include <stdio.h>
int main(){
int n, s;
printf("Введите натуральное число:\n");
scanf("%d", &n);
for (s = 0; n > 0; s = s * 10 + n%10, n/=10){
}
printf("%d\n", n);
}Решение задачи: «Поменять местами первую и последнюю цифры в записи числа»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main(void){
setlocale(LC_ALL,"Ru");
int n,c=0,perv,posl,pr,st;
printf("Введите натуральное число:\n");
scanf("%d",&n);
pr=n;
do{n/=10;c++;}while(n);
posl=pr%10;
st=pow(10,c-1);
perv=pr/st;
n=((pr-posl)+perv);
n=n-perv*st+posl*st;
printf("Количество цифр в числе: %d = %d\n",pr,c);
printf("Число с переставленными 1-ой и последней цифрами: %d\n",n);
return(0);
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами и ввода-вывода.
- Установка локали на русский язык.
- Объявление переменных:
- n - переменная для хранения введенного числа;
- c - счетчик количества цифр в числе;
- perv - предыдущая цифра числа;
- posl - последняя цифра числа;
- pr - первоначальное значение переменной n;
- st - степень десятки, соответствующая количеству цифр в числе.
- Вывод сообщения с просьбой ввести натуральное число.
- Считывание введенного числа в переменную n с помощью функции scanf.
- Очистка поля ввода после использования функции scanf.
- Цикл do-while, который будет выполняться до тех пор, пока n не станет равным 0.
- Деление n на 10 и увеличение c на каждой итерации цикла.
- Вычисление posl как остатка от деления pr на 10.
- Вычисление st как степени десятки, соответствующей количеству цифр в числе.
- Вычисление perv как целой части от деления pr на st.
- Вычисление n как разности pr и posl, с последующим умножением на st и добавлением posl*st.
- Вывод сообщения о количестве цифр в числе pr и соответствующем количестве цифр в числе c.
- Вывод сообщения о числе с переставленными 1-ой и последней цифрами в переменной n.
- Конец программы с возвратом 0.