不明白这个

来源:百度知道 编辑:UC知道 时间:2024/07/01 12:59:32
#include <stdio.h>
int main()
{
double i,n,sum,p,q,m;
printf("Enter n:");
scanf("%lf",&n);
p=2;
sum=0;

q=1;
for(i=1;i<=n;i++)
{
sum=sum+(p/q);
m=q;
q=p;
p=p+m;
}printf("%.2f\n",sum);
return 0;
}

2楼正解 不过楼主看的懂吗? 我写的详细点
#include <stdio.h>
int main()
{
double i,n,sum,p,q,m;
printf("Enter n:"); /*品目显示“Enter n :*/
scanf("%lf",&n); /*输入n的值*/
p=2; /*p的初始值为2*/
sum=0;

q=1;
for(i=1;i<=n;i++) /*循环 i初始值1 作累加 当i<=n时 花括号内做循环运算*/
{
sum=sum+(p/q); /*第一个循环时sum=0+2/1*/
m=q; /*把q的值放到m里*/
q=p; /*把p的值放到q里*/
p=p+m; /*把p+m的值放入p*/
}printf("%.2f\n",sum);/*以实数形式显示输出sum 保留2位小数*/
return 0;
}

/*整个程序在做:2/1, 3/2, 5/3, 8/5, .......*/

#include <stdio.h>
int main()
{
double i,n,sum,p,q,m;//定义双精度实型变量
printf("Enter n:");
scanf("%lf",&n);//f的l是双精度实型特有的
p=2;
sum=0;

q=1;
for(i=1;i<=n;i++)//这里不明白你为什么要循环i,后面的都没出现i
{
sum=sum+(p/q);
m=q;
q=p;
p=p+m;//m,p,