int main()
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站设计、襄州网络推广、重庆小程序开发、襄州网络营销、襄州企业策划、襄州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供襄州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
{
double x,sum,jd,xf=1,i=1,jc=-1,m;
scanf("%lf",x);
sum=0;
do
{
jc=-jc*i;
xf*=x;
m=xf/jc;
jd=fabs(m);
sum=sum+m;
i++;
}
while(jd0.00001);
printf("sum=%.2f",sum);
return 0;
}
有两点错误:
1、do-while之间没有{},加上即可;
2、jc没有赋初始值,在for循环前(do-while内)应加上jc=1;
另:上面代码为我作的小小修改(稍微提高一点效率)
#include stdio.h
main()
{
float sum;
int i, j=1, k=2;
for(i = 1; i = 20; i++) {
printf("%d %d\n", j, k);
sum = 1.0 * j / k;
k += j;
j = k - j;
}
printf("前20项数列和是: %f\n", sum);
}
观察数列可以发现每一项都大于1,所以计算时不计1,最后计算了多少项就加多少,这样能提高运算时效;经这样处理后,原数列等效为(1+1/1)+(1+1/2)+(1+2/3)+(1+3/5)+(1+5/8)+...,可以看出分数部分的规律是后一项的分母是前一项分子分母之和、分子是前一项分母。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int a,b,i;
double sum;
for(a=b=1,sum=i=0;i20;i++){
sum+=b/(a+0.0);
a+=b;
b=a-b;
}
printf("The result is %f\n",sum+i);
return 0;
}
#include stdio.h
int main()
{double s=0,t;
int i,n;
scanf("%d",n);
for(i=1;i=n;i++)
{t=i*i;
if(i%2)s+=1-1/t;
else s-=1-1/t;
}
printf("%.3lf\n",s);
return 0;
}