编写一个程序,从键盘输入一个正整数n,计算表达式1+1/2!+1/3!+1/4!+...+1/n! 的值(计算结果为小数形式)。 要求:设计一个函数int fac(int m)计算m!。 例如:输入6,输出1.718055。
举一反三
- 下列程序接受一个整数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,_________); }
- 编写一个函数,计算s=1+1/2!+1/3!+·······1/N!
- 1.程序功能:输入n的值(n<10),计算1!+2!+3!+......+n!,并输出计算结果。 #include int main() { int i, n; long sum=0,fac=1; //fac存储每个加项(阶乘)的值 printf("请输入n的值:"); scanf("%d",&n); for( i=1; i<=n; i++) { ___________ //后一加项与前一加项的关系 sum=sum+fac; } printf("和为%ld ",sum); return 0; }
- 输入一个正整数 n,输出 1~n 之和。要求自定义函数求 1~n 之和,写出函数定义和调用函数。若要计算 m~n(m<n)之和,又该如何定义?
- 题2:设计程序,在文本框中输入一个正整数N,计算S=1*2*3*...*n的值。