编写一个程序,计算一个数字的阶乘,该数字由键盘输入。 本程序应引发下列异常: l 指定的不是数字格式; l 忘记指定用于计算阶乘的数字。 若正确输入一个数字,程序能够计算并输出它的阶乘。 运行的三种情况: (1)未输入参数时: run: 未给出参数! (2)输入参数abc run: 您指定的参数必须为整数 (3)输入参数10 run: 10!=3628800
举一反三
- 编写一个程序,通过用户输入两个数字,并计算这两个数字之和。
- 下列程序接受一个整数n(1<=n<=12),计算n!,然后输出n!中非0数字的个数。其中函数fac( )用于计算阶乘,函数nzero( )用于计算非0数字的个数。 long fac(int n) /* 计算n!并返回 */ { long m=n; while(_________) m*=n; return m; } int nzero(long m) /*计算m中有几个非0数字并返回 */ { int num=_____________; while(m>0L) { if(_________) num++; m/=10L; } return num; /* num是m中非0数字个数 */ } void main( ) { int n; do{ printf(“输入一个1和12之间的整数:”); scanf(“%d”,&n); }while(____________); /*如果输入不正确,则重复输入 */ n<1||n>12 printf(“%d!中有%d个非0数字。\n”,n,_________); }
- 编写一个接收句子并计算字母和数字的程序。假设为程序提供了以下输入: Hello world! 123 然后,输出应该是: 字母10 数字3
- 任意输入一个数,输出其阶乘。
- 定义一个递归函数,接受一个整数参数,并返回该参数的阶乘。如3的阶乘写作3!,等于3*2!,依此类推;而0!被定义为1.通用的计算公式是,如果n大于0,则n!=n*(n-1)!。在程序中对该函数进行测试,程序使用循环让用户输入不同的值,程序将报告这些值得阶乘。