第1个回答
上一次是最后一次2020.04.28回答提问者采纳关于计算的某些量,x,a,b换成float比较好,不必转换了;for(i=1;i>=1;i++),这里思路不错,但这种循环条件是无限循环下去的,因为永远满足条件,若想这样无限循环的话,可以换成while,并且在下面加个break,在满足break的条件时跳出循环;忽略了第一项是1,若按你的原代码来执行,第一项的值1是没有的,因为在计算变量a之前,变量m就已经从0加到2了,这就跳过了第一项直接算第二项的值;用来计算阶乘的n值在每计算完一项时它的值没有还原为1,也就是说计算第三项的阶乘基础上会加上第二项计算过的阶乘值,即从2开始乘,2*1*2*3*4;参考代码:#include<stdio.h>#include<math.h>main(){inti,n=1,m=0;floatx,a;floatsum=0;floatb=0;printf("输入cosx中x的值:");scanf("%f",&x);for(i=1;i<10;i++)//计算10次即可大体估计cosx{n=1;//每次计算完一项使分母阶乘归1a=pow(x,m);//计算分子for(intj=1;j<=m;j++)//计算分母的阶乘n*=j;m+=2;//计算幂以及分母b=a/n;//计算分项if(i%2!=0)sum+=b;elsesum-=b;}printf("结果为:%f",sum);}结果截图: