#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
double cosin_value(double value);
double sin_value(double value);
double big_degree(double value);
double big_radian(double value);
double x;
double value;
double degree;
double radian;
const double PI = 3.14159;
char choice;
char yes;
int main()
{
cout << "Please enter an angle value => ";
cin >> value;
cout << "Is the angle in Degree or Radian?" << endl;
cout << "\t" << "Type D if it is in Degree" << endl;
cout << "\t" << "Type R if it is in Radian" << endl;
cout << "Your response => ";
cin >> choice; //degree or radian?
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(10);
if (choice == 'D' || choice == 'd')
{
big_degree (value);
cout << " " << "sin(x) = " << "\t" << sin_value(degree) << endl;
cout << " " << "cos(x) = " << "\t" << cosin_value(degree) << endl;
cout << " " << "tan(x) = " << "\t" << sin_value(degree)/cosin_value(degree) << endl;
}
else if (choice == 'R' || choice == 'r')
{
big_radian (value);
cout << " " << "sin(x) = " << "\t" << sin_value(radian) << endl;
cout << " " << "cos(x) = " << "\t" << cosin_value(radian) << endl;
cout << " " << "tan(x) = " << "\t" << sin_value(radian)/cosin_value(radian) << endl;
}
return 0;
}
// Sine,cosine functions
// angle -360<value<360
double sin_value(double value)
{
int count=1;
double sine, num, dem, sign, term;
sine = 0;
sign = 1;
num = value;
dem = count;
while (count <= 20)
{
term = (num/dem);
sine = sine + term * sign;
num = num * value * value;
count = count + 2;
dem = dem * count * (count - 1);
sign = -sign;
}
return (sine);
}
double cosin_value(double value)
{
int count = 0;
double cosine, num, dem, sign, term;
cosine = 0;
sign = 1;
num = 1;
dem = 1;
while (count <= 20)
{
term = (num/dem);
cosine = cosine + term * sign;
num = num * value * value;
count = count + 2;
dem = dem * count * (count - 1);
sign = -sign;
}
return (cosine);
}
double big_degree(double value)
{
int result;
const int angle = 360;
if (value >= 360 || value <= -360)
{
result = value/angle;
degree = (value - (result * angle)) * PI/180;
}
else
{
degree = (value * PI)/180;
}
return (degree);
}
double big_radian(double value)
{
int result;
if (value >= 2 * PI || value <= -2 * PI)
{
result = value/(2 * PI);
radian = (value - (result* 2 * PI));
}
else
{
radian = value;
}
return (radian);
}
我这里有几个问题:计算TAN(X)是无穷的C++
哪有程序显示棕褐色(x)的是无穷当我输入一个值90度或1.5708弧度?当我输入90度时,它给了我一个0.0000013268的输出,而不是0(对于cos(x))。
我试图把这个命令在我cosin函数,其中如果COS(x)的< 0.00001,将其设置为零,它为90度,但对于其他值一样2.3145弧度,COS(X)值为0而不是-0.677013。
我感谢您的指导!
你在哪里设置“度”? 'radian'? –
为什么不保存'big_degree'和'big_radian'的返回值? – Dan455
@ Dan455对不起,我不明白你的意思... – user2611244