C语言计算数字位数程序

如何编写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 Program to Count the Number of Digits using While loop

此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

评论已关闭。