|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 n0noper 于 2016-5-18 11:31 编辑
输入一个正整数n和一个实数x(x范围在0~1.57之间),计算cos(x)=x^0/0!-x^2/2!+x^4/4!+x^6/6!+...的前n项和
为什么我输 5 1.57 的时候,输出的值为负 而且不等于0.0008,我哪里写错了??请指出并帮忙改正,谢谢
#include <stdio.h>
void main(){
int i,n,flag;
double x,item,sum;
double fact(int n); //声明下面的fact函数
double power(double x,int n); //声明下面的power函数
printf("输入一个正整数n和一个实数x:");
scanf("%d%lf",&n,&x);
flag=-1;
if(n==1){
sum=1;
}
else{
sum=1;
for(i=2;i<=n;i++){ // 函数调用
item=flag*power(x,i)/fact(i);
sum=sum+item;
flag=-flag;
}
}
printf("cos(x)的近似值=%0.4f\n",sum);
}
double fact(int n) //函数定义
{
double product;
int i;
product=1;
for(i=1;i<=(2*n-2);i++) //计算分母的变量
product=product*i;
return product; //返回结果
}
double power(double x,int n) //函数定义
{
double pow=1;
int i;
for(i=1;i<=n;i++) //计算分子的变量
{
pow=pow*x;
}
return pow; //返回结果
} |
|