C语言编程代码

编写程序求下列数列前100个数之和(保留6位小数):
2 3 5 8 13 21
—,—,—,—,—,—,……
1 2 3 5 8 13
这里,后项的分母是前项的分子,后项的分子为前项的分子与分母之和。先将其中求和部分用一个函数实现,然后再从主函数调用该函数。

// VC6.0编译运行通过。

// 2/1 + 3/2 + 5/3 + 8/5 + 13/8 + 21/13 + ... + 第100项 = ?
# include <stdio.h>
//求和函数 sum(int n); 需要项数。
float Sum(int n)
{
int i=0;
float z=2.0,m=1.0,sum=0.0,t=0.0;
for(i=0;i<n;i++)
{
sum += z/m;
t = z;
z += m;
m = t;
}
return sum;
}
int main(void)
{
int n=0;
printf("请输入项数: ");
scanf("%d",&n);
printf("前 %d 项的和为: %.6f\n" ,n ,Sum(n));
return 0;
}

一楼这位热心网友的程序有一处不合理。
C语言的局部变量只能在函数的开始部分定义,而他的程序 变量 i 是在for 循环中定义,编译不通过。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-19
谭浩强的c语言教材里面有例题。自己找一下
第2个回答  2012-11-19
#include<stdio.h>
double GetSum(int num)
{
double sum = 0;
int a = 1,b = 2;
int temp;
for (int i=0; i<num; ++i)
{
sum += b/(double)a;
temp = b;
b = a+b;
a = temp;
}
return sum;
}
int main()
{
printf("%.6f\n",GetSum(100));
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网