浙大c程序语言设计(第2版)题库答案
20057 求1+1/2+1/3+......+1/n
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
编写程序,输入一个正整数n,求1+1/2+1/3+......的前n项之和,输出时保留6位小数。 输入输出示例:括号内为说明
输入
2 (repeat=2)
6 (计算1+1/2+1/3+1/4+1/5+1/6)
2 (计算1+1/2)
输出
sum = 2.450000
sum = 1.500000
#include <stdio.h>
int main(void)
{
int i, n;
int repeat, ri;
double sum;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/i;
printf("sum = %.6f\n", sum);
}
}
20065 求0!+1!+2!+……+n!
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
编写一个程序,输入一个正整数 n,计算 e = 0!+1!+2!+……+n!,要求定义和调用函数fact(n)计算n!,函数类型是double。
例:括号内是说明
输入
3 (repeat=3)
1
2
4
输出
sum = 2
sum = 4
sum = 34