C语言求数字各位数之积程序

如何使用For循环、While循环、函数和递归编写C语言求数字各位数之积的程序。

使用For循环求数字各位数之积的C语言程序

此程序允许用户输入任何正整数。接下来,它将给定数字分解为单个数字,并使用For循环计算这些单个数字的乘积。

#include <stdio.h>
 
int main()
{
  	int Number, Reminder, Product;
 
  	printf("\n Please Enter any Number that you wish  : ");
  	scanf("%d", & Number);
  	 	
  	for(Product = 1; Number > 0; Number = Number / 10)
  	{
  		Reminder = Number % 10;
		Product = Product * Reminder;
	}
  
	printf(" \n The Product of Digits of a Given Number =  %d", Product);
 
  	return 0;
}
C Program to Find Product of Digits Of a Number 1

在此数字各位数之积程序中,用户输入的值:Number = 234,Product = 1。

第一次迭代
Reminder = Number  % 10。
Reminder = 234 % 10 = 4。
Product = Product * Reminder = 1 * 4 = 4。
Number = Number / 10 = 234 / 10 = 23。

第二次迭代

C编程的第一次迭代开始,Number和Product的值都已更改为Number = 23,Product = 4。

Reminder = 23 % 10 = 3。
Product =  4 * 3 = 12。
Number = 23 / 10 = 2。

第三次迭代

从第二次迭代开始,Number和Product的值都已更改为Number = 2,Product = 12。

Reminder = 2 % 10 = 2。
Product =  12 * 2 = 24。
Number = 2 / 10 = 0。

此时Number = 0,因此For循环内的条件将失败。

使用While循环求数字各位数之积的C语言程序

计算数字各位数之积的程序与上面的程序相同,但我们将For循环替换为While循环

#include <stdio.h>
 
int main()
{
  	int Number, Reminder, Product = 1;
 
  	printf("\n Please Enter any Number that you wish  : ");
  	scanf("%d", & Number);
  	 	
  	while(Number != 0)
  	{
  		Reminder = Number % 10;
		Product = Product * Reminder;
  		Number = Number / 10;
	}
  
	printf(" \n The Product of Digit of a Given Number =  %d", Product);
 
  	return 0;
}
 Please Enter any Number that you wish  : 4568
 
 The Product of Digit of a Given Number =  960

此使用函数求数字各位数之积的程序与第一个示例相同。但是,我们使用函数将代码进行了分离。

#include <stdio.h>

int Product_Of_Digits (int); 

int main()
{
  	int Number, Product = 1;

  	printf("\n Please Enter any number  :  ");
  	scanf("%d", &Number);

  	Product = Product_Of_Digits (Number);

  	printf("\n The Product of all the digits of Given Number = %d", Product);
  	return 0;
}

int Product_Of_Digits (int Number)
{
  	int Reminder, Product;

  	for (Product = 1; Number > 0; Number = Number / 10)
  	{
    	Reminder = Number % 10;
    	Product = Product * Reminder;  
  	}     

 	return Product;
}
 Please Enter any number  :  7825

 The Product of all the digits of Given Number = 560

使用递归求数字各位数之积的C语言程序

此程序将通过递归调用函数来查找给定数字中各个数字的乘积。有关执行的进一步参考,请参阅递归

#include <stdio.h>

int ProdDi (int);

int main()
{
int Number, Prod = 1;

printf("\n Please Enter any number : ");
scanf("%d", &Number);

Prod = ProdDi (Number);

printf("\n The Product of all the digits of Given Number = %d", Prod);
return 0;
}

int ProdDi (int Number)
{
static int Reminder, Prod = 1;

if(Number > 0)
{
Reminder = Number % 10;
Prod = Prod * Reminder;
ProdDi (Number / 10);
return Prod
}
else
return 0;
}
 Please Enter any number :  456

 The Product of all the digits of Given Number = 120

在此程序中,在函数内部,静态变量仅在首次调用函数时进行初始化。

ProdDi (Number / 10) 语句将以更新后的值递归调用函数。如果您遗漏了此语句,在完成第一行后,它将终止。例如,Number = 4567,输出将是7。