如何使用 While 循环、函数和递归编写 C 语言反转数字的程序?为此,首先通过将数字除以 10 来找到余数。
下面的程序允许用户输入任何正整数。接下来,此 C 程序使用 while 循环遍历数字中的各位,并将数字反转。
#include <stdio.h>
int main(void)
{
int n, rd, rs = 0;
printf("Please Enter any Number to Reverse = ");
scanf("%d", & n);
while (n > 0)
{
rd = n %10;
rs = rs * 10+ rd;
n = n /10;
}
printf(“Reverse of entered Number is = %d\n", rs);
return 0;
}

此程序允许用户输入任何正整数,然后将该数字分配给一个变量。接下来,While Loop 中的条件将确保给定的数字大于 0。
从上面的反转数字的程序示例中,用户输入的数字为:n = 1456,rs = 0
第一次迭代
rd = n %10 = 1456%10 = 6
rs = rs *10 + rd
rs = 0 * 10 + 6 => 0 + 6 => 6
n = n /10 = 1456 /10 => 145
第二次迭代:从此 C 程序第一次迭代开始,两个变量的值都已改变,数字 = 145,反转数字 = 6
rd = 145 % 10 = 5
rs = 6 * 10 + 5 => 60 + 5 => 65
n = 145 /10 => 14
第三次迭代:从第二次迭代开始,这个程序中,两个变量的值变为 14 和 65
rd = 14 % 10 = 4
rs = 65 * 10 + 4 => 650 + 4 => 654
n = 14 / 10 = 1
第四次迭代:从第三次迭代开始,数字 = 1,反转数字 = 654
rd = 1 %10 = 1
rs = 654 * 10 + 1 => 6540 + 1 => 6541
n = 1/ 10 => 0
在这里,对于下一次迭代,n = 0。因此,C 编程的 while 循环条件将不满足。
使用 For 循环反转数字的 C 程序
此示例使用 for 循环迭代数字中的各个数字,并使用我们在 while 循环示例中使用的逻辑来反转它们。
#include <stdio.h>
int main(void) {
int n, rd, rs = 0;
printf("Please Enter any Number = ");
scanf("%d", &n);
for(;n > 0; n = n /10){
rd = n % 10;
rs = rs * 10+ rd;
}
printf("Reverse of entered = %d\n", rs);
return 0;
}

使用函数反转数字的 C 程序
此程序允许用户输入任何正整数。然后,此程序使用函数反转数字。
#include <stdio.h>
int rev_Integer (int);
int main(void)
{
int Number, rev = 0;
printf("Please Enter any number = ");
scanf("%d", &Number);
rev = rev_Integer (Number);
printf("Reverse = %d\n", rev);
return 0;
}
int rev_Integer (int Number)
{
int Reminder, rev = 0;
while (Number > 0)
{
Reminder = Number %10;
rev = rev *10+ Reminder;
Number = Number /10;
}
return rev;
}

在此程序中,当编译器在 main() 程序中遇到 rev_Integer (Number) 行时,编译器将立即跳转到下面的函数。
int rev_Integer (int Number)
我们已经在上面的示例中解释了代码逻辑。请参考 While Loop 分析。最后一行以 return Reverse 语句结束。
使用递归反转数字的 C 程序
此 C 程序允许我们输入任何正整数。然后,它将使用递归来反转数字。
#include <stdio.h>
int Rev_Integer (int );
int main(void)
{
int n, rev = 0;
printf("\nPlease Enter any value\n");
scanf("%d", &n);
rev = Rev_Integer (n);
printf("Reverse= %d\n", rev);
return 0;
}
int Rev_Integer (int n)
{
static int Rem, rev = 0;
if (n > 0)
{
Rem = n %10;
rev = rev *10+ Rem;
Rev_Integer (n /10);
}
return rev;
}

在此程序中,当编译器在 main() 程序中遇到 Rev_Integer (n) 行时,编译器将立即跳转到下面的函数。
int Rev_Integer (int n)
在此函数中,Rev_Integer (n / 10); 语句将帮助递归调用具有更新值的函数。如果您错过了此语句,它将在完成第一行后终止。例如,如果 Number = 459,则输出将是 9。
让我们看看 If 条件。
如果 (n > 0),代码将检查数字是否大于 0。对于递归函数,在递归使用函数之前放置一个条件至关重要。否则,我们将陷入无限执行(与无限循环相同)。
评论已关闭。