16.本题要求编写程序,计算序列2/1+3/2+5/3+...的前n项之和,注意该序列从第二项起,每一项的分子是前一项分子和分母的和,分母是前一项的分子。
输出格式:在一行中输出部分和的值,精确小数点后两位,题目保证计算结果不超过双精度范围
#include<stdio.h>
int main(){
double w,m;
int n;
double sum=0.0;
double a;
scanf("%d",&n);
w=2;
m=1;
for(a=1;a<=n;a++){
sum+=w/m;
w=w+m;
m=a;
}
printf("%.2lf",sum);
return 0;
}
做错,错在分母不是每次都加一而是变为前一项的分子
#include<stdio.h>
int main(){
double w,m;
int n;
double sum=0.0;
double a,b;
scanf("%d",&n);
w=2;
m=1;
for(a=1;a<=n;a++){
sum+=w/m;
b=w;
w=w+m;
m=b;
}
printf("%.2lf",sum);
return 0;
}
注意:double变量可以用%f或%lf在printf输出,只能用%lf在scanf输入
不一样是怎么回事