#include<iostream>
#include<cmath>
using namespace std;
double fun(double x,double n);
int main()
{
double sum=0;
double x=0;
double n=1;
int c=1;
cin>>x;
do
{
sum+=c*fun(x,n);
n+=2;
c=-c;
}
while(fun(x,n)>=1e-6);
cout<<"sinx="<<sum;
return 0;
}
double fun(double x,double n)
{
int outcome=1;
for(int i=1;i<=n;i++)
outcome*=i;
return pow(x,n)/outcome;
}
运行结果与答案一直对不上
感觉一直对不了,我还想问下为甚double^double的形式为什么会 报错啊
double fun(double x,double n)
中的 int outcome=1;
改成 double outcome=1;
#include<iostream>
#include<cmath>
using namespace std;
double fun(double x,double n);
int main()
{
double sum=0;
double x;
double n=1;
int c=1;
cin>>x;
do
{
sum+=c*fun(x,n);
n+=2;
c=-c;
}
while(fun(x,n)>=1e-6);
cout<<"sinx="<<sum;
return 0;
}
double fun(double x,double n)
{
double outcome=1;
for(int i=1;i<=n;i++)
outcome*=i;
return pow(x,n)/outcome;
}