一、题目描述
本关任务:给定程序中,函数 fun 的功能是根据形参 i 的值返回某个函数的值。
注意:请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 中修改你编写的若干语句,错误通常在/found/注释行的下一行。
输入格式
输入两个值。
输出格式
函数计算之后返回的值。
输入输出样例
输入1
5.000000 3.000000
输出1
40.000000
#include<stdio.h>
double f1(double x) {
return x*x;
}
double f2(double x,double y) {
return x*y;
}
/********found********/
___1___ fun(int i,double x,double y) {
if (i==1)
/********found********/
return ___2___(x);
else
/********found********/
return ___3___(x,y);
}
void main() {
double x1,x2,r;
scanf("%lf%lf",&x1,&x2);
r=fun(1,x1,x2);
r+=fun(2, x1,x2);
printf("%f",r);
}
答案
#include<stdio.h>
double f1(double x){
return x*x;
}
double f2(double x,double y) {
return x*y;
}
/********found********/
double fun(int i,double x,double y){
if (i==1)
/********found********/
return f1(x);
else
/********found********/
return f2(x,y);
}
int main() {
double x1,x2,r;
scanf("%lf%lf",&x1,&x2);
r=fun(1,x1,x2);
r+=fun(2,x1,x2);
printf("%f",r);
}
二、题目描述
输入一个大于 0 的整数 n,计算如下多项式, q = 1 / (1 * 2) + 1 / (2 * 3) + 1 / (3 * 4) + ··· + 1 / (n * (n + 1)) 输出结果 q,保留 6 位小数。
输入格式
一个整数。
输出格式
一个小数,保留 6 位小数。
输入输出样例
输入
1
输出
0.500000
说明/提示
q = 1 / (1 x 2) = 0.5。
#include<stdio.h>
int main() {
int n,j;
double result,temp;
scanf("%d",&n);
if(n<=0) return 0;
result=0;
for(int i=1;i<=n;i++){
j=i+1;
temp=1.0/(i*j);
result=result+temp;
}
printf("%.6f",result);
}
temp=1.0/(ij);不能写错了,如果写的是1/(ij);结果就会变成0