# C 程序：使用递归函数反转给定的数字

> 原文： [https://beginnersbook.com/2014/06/c-program-to-reverse-a-given-number-using-recursive-function/](https://beginnersbook.com/2014/06/c-program-to-reverse-a-given-number-using-recursive-function/)

在本教程中，我们将学习以下两种反转数字的方法。

1）使用递归

2）使用`while`循环

### 使用递归反转给定的数字：

在这个程序中，我们调用用户定义的函数`reverse_function`，该函数递归调用自身。

```c
#include<stdio.h>
int main(){
   int num,reverse_number;

   //User would input the number
   printf("\nEnter any number:");
   scanf("%d",&num);

   //Calling user defined function to perform reverse
   reverse_number=reverse_function(num);
   printf("\nAfter reverse the no is :%d",reverse_number);
   return 0;
}
int sum=0,rem;
reverse_function(int num){
   if(num){
      rem=num%10;
      sum=sum*10+rem;
      reverse_function(num/10);
   }
   else
      return sum;
   return sum;
}
```

输出：

```c
Enter any number: 23456
After reverse the no is :65432
```

### 使用`while`循环反转数字

在上面的程序中，我们学习了如何使用递归函数反转数字。在这里，我们将学习如何使用`while`循环。

```c
#include<stdio.h>
int main()
{
   int num,rem,reverse_num=0;
   //Input number
   printf("\nEnter any number:");
   scanf("%d",&num);

   while(num>=1)
   {
      rem = num % 10;
      reverse_num = reverse_num * 10 + rem;
      num = num / 10;
   }

   printf("\nReverse of input number is: %d", reverse_num);
   return 0;
}
```

输出：

```c
Enter any number: 49212
Reverse of input number is: 21294
```