如何编写C语言程序使用 For 循环、While 循环、函数和递归来计算数字的位数
使用While循环计算数字位数的C语言程序
此数字计数程序允许用户输入任何正整数。然后,它将给定的数字分解为各个数字,并使用While循环计数这些单个数字。
#include <stdio.h>
int main()
{
int Number, Reminder, Count=0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
while(Number > 0)
{
Number = Number / 10;
Count = Count + 1;
}
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
使用While循环计算数字的输出

此C语言数字计数程序允许用户输入任何正整数,然后将该数字赋值给Number变量。
接下来,While循环中的条件将确保给定的数字大于0(表示正整数且大于0)。
用户在此C程序中输入的数值:Number = 9875 and Count = 0
第一次迭代
Number = Number / 10 = 9875 / 10
Number = 987
Count = Count + 1 = 0 + 1
Count = 1
第二次迭代:从第一次迭代开始,Number和Count的值都已更改,变为 Number = 987 and Count = 1
Number = 987 / 10 = 98
Count = 1 + 1 = 2
第三次迭代:从第二次迭代开始,Number和Count的值都已更改,变为 Number = 98 and Count = 2
Number = 98 / 10 = 9
Count = 2 + 1 = 3
第四次迭代:从数字计数程序第三次迭代开始,值为 Number = 9 and Count = 3
Number = 9 / 10 = 0
Count = 3 + 1 = 4
此时 Number = 0,因此while循环中的条件将失败。
最后的编程printf语句将使用Count变量作为输出,打印出给定数字中的位数。因此,给定变量9875的输出是4。
使用For循环计算数字位数的C语言程序
此数字计数程序允许用户输入任何正整数。接下来,它将给定的数字分解为各个数字,并使用For循环计数这些单个数字。
#include <stdio.h>
int main()
{
int Number, Reminder, Count;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
for (Count=0; Number > 0;Number=Number/10)
{
Count=Count + 1;
}
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
我们只是将上面数字计数示例中的While循环替换为了For循环。如果您不理解for循环程序,请参阅此处的For Loop文章:For Loop。
Please Enter any number
256
Number of Digits in a Given Number = 3
使用函数计算数字位数的C语言程序
此数字计数程序允许用户输入任何正整数。然后,它将给定的数字分解为各个数字,并使用函数计算这些单个数字。
#include <stdio.h>
int Count_Of_Digits (int);
int main()
{
int Number, Count = 0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
Count = Count_Of_Digits (Number);
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
int Count_Of_Digits (int Number)
{
int Count;
while(Number > 0)
{
Number = Number / 10;
Count = Count + 1;
}
return Count;
}
Please Enter any number
9875
Number of Digits in a Given Number = 4
在此数字计数程序中,当编译器在main()程序中遇到Count_Of_Digits (Number)行时,编译器将立即跳转到下面的函数。
int Count_Of_Digits (int Number)
我们已经在上面的“使用While循环计算给定数字的位数程序分析”部分解释了逻辑。请参考。
最后一行以return Count语句结束。
注意:如果我们创建了一个Void函数,则无需返回任何值。但是,如果我们声明了一个具有任何数据类型(int,float等)的函数,则必须从函数中返回一些值。
使用递归计算数字位数的C语言程序
此数字计数程序通过递归将给定的数字分解并计数这些单个数字。
#include <stdio.h>
int Count_Of_Digits (int);
int main()
{
int Number, Count = 0;
printf("\n Please Enter any number\n");
scanf("%d", &Number);
Count = Count_Of_Digits (Number);
printf("\n Number of Digits in a Given Number = %d", Count);
return 0;
}
int Count_Of_Digits (int Number)
{
static int Count =0;
if(Number > 0)
{
Count = Count + 1;
Count_Of_Digits (Number / 10);
}
return Count;
}
使用递归计算数字的输出
Please Enter any number
985682
Number of Digits in a Given Number = 6
在此数字计数程序中,在Count_Of_Digits (int Number)函数定义中,
静态变量仅在函数首次调用时初始化值。
Count_Of_Digits (Number / 10)语句将帮助以更新后的值递归调用函数。如果您忽略此语句,在完成第一行后,它将终止。
例如,Number = 1234,则输出为4
评论已关闭。