Распечатать число, которое получится после выписывания цифр числа n в обратном порядке - C (СИ)
Формулировка задачи:
Помогите плиз)))
Дано натуральное число п.
Распечатать число, которое получится после выписывания цифр числа n в обратном порядке.
(Для получения нового числа составить функцию.)
саму задачу решил..-->
А вот функцию не могу
вот мой вариант,но он не хочет работать((
Что не так подскажите??
#include<stdio.h>
#include<math.h>
int main()
{
int n,j,i;
printf("Vvedite chislo n=");
scanf("%d",&n);
while(n!=0)
{
j=n/10;
i=n-j*10;
n=n/10;
printf("%d",i);
}
}#include<stdio.h>
#include<math.h>
int zifra(int n)
{
int j,i;
while(n!=0)
{
j=n/10;
i=n-j*10;
n=n/10;
}
return i;
}
int main()
{
int A;
scanf("%d",&A);
printf("%d--%d",A,zifra(A));
}Решение задачи: «Распечатать число, которое получится после выписывания цифр числа n в обратном порядке»
textual
Листинг программы
#include <stdio.h>
int revNum(int num){
int rev = 0;
while ( num ){
rev = 10 * rev + num % 10;
num /= 10;
}
return rev;
}
int main(void){
int num;
while ( 1 ){
printf("Number: ");
if ( scanf("%d", &num) != 1 || !num )
break;
printf("Reverse: %d\n", revNum(num));
}
return 0;
}
Объяснение кода листинга программы
В данном коде реализована функция revNum, которая принимает целое число и возвращает обратное число, получая его путем перебора цифр исходного числа в обратном порядке.
Алгоритм работы функции следующий:
- Входное число делится на 10, чтобы получить последнюю цифру.
- Последняя цифра добавляется к переменной
rev, умноженной на 10. - Шаг 1 и 2 повторяются до тех пор, пока исходное число не станет равным нулю.
- Функция возвращает полученное обратное число.
В функции
mainорганизован цикл, который продолжается до тех пор, пока пользователь не введет некорректное значение или не отправит сигнал конца файла. - Пользователю предлагается ввести целое число.
- Если пользователь ввел корректное число, функция
revNumвызывается с этим числом в качестве аргумента, и результат выводится на экран. - Если пользователь ввел некорректное число или отправил сигнал конца файла, цикл прерывается.
- Цикл повторяется с шага 1. В конце программы возвращается 0, что означает успешный конец работы программы.