C语言 用泰勒公式求sin(x)的近似值
编写程序,用下面公式计算并输出sin(x)的近似值,直到最后一项的绝对值小于10-n(输出结果精确到小数点后n位)。Input有多组输入数据,每组占一行。每行是2个数,x...
编写程序,用下面公式计算并输出sin(x)的近似值,直到最后一项的绝对值小于10-n(输出结果精确到小数点后n位)。
Input
有多组输入数据,每组占一行。
每行是2个数,x和n,中间一个空格分隔。
x是任意实数(最大不超过double能表示的范围),0 < n < 10
Output
为每组测试数据输出一行结果:sin(x)的近似结果。
Sample Input
9.21 5
0 6
Sample Output
0.21313
0.000000
这是我的程序:
#include <stdio.h>
#include <math.h>
int main()
{
double jiechen(int b);
int i,a,b,n;
double x,sum;
while(scanf("%lf%d",&x,&n)!=EOF)
{
sum=0;a=1,i=1;
do
{
b=2*i-1;
sum=sum+(a*pow(x,b))/jiechen(b);
a=-a;i++;
}while(((pow(x,b))/jiechen(b))>=pow(10,-n));
printf("%.*lf\n",n,sum);
}
return 0;
}
double jiechen(int b)
{
double result;
int n;
result=1;
for(n=1;n<=b;n++)
result=result*n;
return result;
}
提交就说我错..哪里不对?拜托了 展开
Input
有多组输入数据,每组占一行。
每行是2个数,x和n,中间一个空格分隔。
x是任意实数(最大不超过double能表示的范围),0 < n < 10
Output
为每组测试数据输出一行结果:sin(x)的近似结果。
Sample Input
9.21 5
0 6
Sample Output
0.21313
0.000000
这是我的程序:
#include <stdio.h>
#include <math.h>
int main()
{
double jiechen(int b);
int i,a,b,n;
double x,sum;
while(scanf("%lf%d",&x,&n)!=EOF)
{
sum=0;a=1,i=1;
do
{
b=2*i-1;
sum=sum+(a*pow(x,b))/jiechen(b);
a=-a;i++;
}while(((pow(x,b))/jiechen(b))>=pow(10,-n));
printf("%.*lf\n",n,sum);
}
return 0;
}
double jiechen(int b)
{
double result;
int n;
result=1;
for(n=1;n<=b;n++)
result=result*n;
return result;
}
提交就说我错..哪里不对?拜托了 展开
2个回答
展开全部
X为负数的情况
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在头文件上应该还要加上一个 头文件,#include "stdafx.h"就可以了
更多追问追答
追问
stdafx.h: No such file or directory
追答
你是用的什么编译器?因为你用了scanf和printf这两个函数,看你编译器支持#include 库不,不支持的话就另外包含头文件。你用一下包含iostream.h或,stdio.h,cstdio.h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询