最近写一个C++题目的时候遇到了一个困难,望大家能帮帮忙,让我知道错哪儿了,并如何改正。
需要解决的问题:程序第四行括号当中明明应该是double,但是却只能用int ,一用double就是随机值。
题目如下:
程序如下:
#include<iostream>
#include<cmath>
using namespace std;
double sin(int x)
//让我感到很生气的是这个int一改成double就是错的
{
double sqr=x*x;
double e=x;
double f;
double r;
int n=1;
int i=1;
while(e/i>=1e-6)
{
f=e/i;//第一项
r+=f;//累加的式子
e=e*sqr;//对分子进行变化
i*=pow(-1,n)*(2*n)*(2*n+1);//在n=1的情况下对分母的变化
n++;
}
return r;
}
int main()
{
double r,s,k;
cout<<"please input two numbers:"<<endl;
cout<<"r=";
cin>>r;
cout<<"s=";
cin>>s;
if(r*r<=s*s)
k=sqrt(sin(r)*sin(r)+sin(s)*sin(s));
else if(r*r>s*s)
k=1/2*sin(r*s);
cout<<k<<endl;
return 0;
}