#include<stdio.h>
unsigned long Fact(unsigned int n);
int main()
{
int m;
do{
printf("Input m(m>0):");
scanf("%d",&m);
}while(m<0);/*增加对输入数据的限制,确保输入的数据为符号整数*/
printf("%d!=%1u\n",m,Fact(m));/*无符号长整型格式输出阶乘值*/
return 0;
}
unsigned long Fact(unsigned int n)
{
unsigned int i;
unsigned long result=1;
for(i=2;i<=n;i++)
result*=i;
return result;
}
知识点:函数Fact()的返回类型与主函数中接收函数返回值的变量ret的类型不完全一致;
注意:函数Fact()的调用(当接收的函数变量数据表示超出范围时)。