程序:
/*
* Copyright(c)2013,
*All right reserved.
*文件名称:test4-2.cpp
*作 者:徐驰
*完成日期:2013-12-04
*版 本 号:v1.0
*
*输入描述:角度a
*问题描述:求出sin(a)或cos(a)
*程序输出:值
*问题分析:略
*算法分析:泰勒公式
*/
#include<iostream>
#include<Cmath>
#include<string>
using namespace std;
const double pi=3.1415926;
double sin(double a);
double cos(double a);
double fact(int i);
int main()
{
string type;
double a;
while(1)
{
cout<<"请输入算式(sin a或cos a)(000 0退出):";
cin>>type>>a;
if(type=="sin")cout<<"="<<sin(a)<<endl;
else if(type=="cos")cout<<"="<<cos(a)<<endl;
else if(type=="000")break;
else cout<<"输入错误,请重新输入!"<<endl;
}
cout<<"谢谢使用"<<endl;
return 0;
}
double sin(double a)
{
double sum,b;
int i,sign=1;
a=a/360*2*pi;
b=a;
sum=a;
for(i=3;b>1e-5;i=i+2)
{
sign=-sign;
b=pow(a,i)/fact(i);
sum=sum+sign*b;
}
return sum;
}
double cos(double a)
{
double sum=1,b;
int i,sign=1;
a=a/360*2*pi;
b=a;
for(i=2;b>1e-5;i=i+2)
{
sign=-sign;
b=pow(a,i)/fact(i);
sum=sum+sign*b;
}
return sum;
}
double fact(int i)
{
int j;
double a=1;
for(j=1;j<=i;j++)
{
a=a*j;
}
return a;
}
结果: