Вывести рекурсию числа и сравнить первую и последнюю цифру - C (СИ)
Формулировка задачи:
рекурсию числа сделал, но когда пытаюсь сравнить нужные цифры введенного числа, при вводе двузначного (напр. 44) выводит zbc, но если ввести трёхзначное число - ничего не выводит.
#include <stdio.h>
#include <stdlib.h>
int main () {
int num,final = 0;
printf("vvedite cslo");
scanf_s("%d",&num);
while(num>0)
{
final= (final*10) + num%10;
num/=10;
if (num%10 == final%10 )
printf("\tzbc\n");
}
printf("revers %d\n",final);
return 0;
}
забыл сказать, ещё нужно найти число десятков в числе, но эт я не знаю как сделать.
Решение задачи: «Вывести рекурсию числа и сравнить первую и последнюю цифру»
textual
Листинг программы
...
int main () {
int num, n, final = 0;
printf("vvedite cslo");
scanf_s("%d",&num);
n = num;
while(n>0)
{
final= (final*10) + n%10;
n/=10;
}
if (num%10 == final%10 )
{
printf("\tzbc\n");
}
printf("revers %d\n",final);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные: num, n и final.
- С помощью функции scanf_s считывается число (вводится пользователем).
- Это число сохраняется в переменной num.
- Затем, с помощью цикла while, число разбивается на отдельные цифры, которые сохраняются в переменной final (в виде десятичной суммы).
- В конце цикла проверяется, равна ли последняя цифра введенного числа последней цифре в переменной final.
- Если это так, то выводится сообщение
zbc. - Затем выводится перевернутое число в переменной final.
- Программа завершается.