#include<stdio.h>
int main(){
int n,i;
scanf("%d",&n);
double a=2,b=1,c;//n没溢出,a b c是整数,会溢出,如上课看到,可能变负数
double sum;
for(i=0;i<n;i++){
sum+=a*1.0/b;
c=a;
a=a+b;
b=c;
}
printf("%.2f",sum);
return 0;
}
数组似乎更清晰一点儿
#include<stdio.h>
int main(){
int n,i;
double sum;
scanf("%d",&n);
double a[n],b[n];
a[0]=2;
b[0]=1;
for(i=1;i<n;i++){
a[i]=a[i-1]+b[i-1];
b[i]=a[i-1];
}
for(i=0;i<n;i++){
//printf("%d %d\n",a[i],b[i]);
sum+=a[i]*1.0/b[i];
}
printf("%.2f",sum);
}