C语言新手求救
废萌(? 2019-10-07 09:58:52 /*17.
【问题描述】利用泰勒级数,计算sin(x) 的值。要求最后一项的绝对值小于10-5,并统计出此时累加了多少项(x由键盘输入)。
【输入形式】输入为一个小于10的小数
【输出形式】sin(x)的值和count的值
【样例输入】
0.523598
【样例输出】
sin(x)=0.499999,count=4
【样例说明】
【评分标准】
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
float x,y,x1;
int i,j,k,l,m,n;
scanf("%f",&x);
m=1;
i=1;
k=3;
x1=x;
y=pow(x,k);
for(;i<=30;)
{
n=1;
for(j=1;j<=k;j++)
{
n=n*j;
}
m=-m;
x1=x1+m*(y/n);
k=k+2;
if((y/n)<0.00001)
{
l=i+1;
i=100;
}
else
i++;
y=pow(x,k);
}
printf("sin(x)=%f,count=%d",x1,l);
system("pause");
return 0;
}
有报错,如下
编译通过, 共有1个警告
sy4_17.c: In function 'main':
sy4_17.c:50:8: warning: 'l' may be used uninitialized in this function [-Wmaybe-uninitialized]
printf("sin(x)=%f,count=%d",x1,l);
^
还有
错误输出:
sin(x)=-0.993561,count=9
期望输出:
sin(x)=0.000000,count=9
这个是学校作业,改来改去改不对,想求助看的懂的前辈救救孩子