获得Cosinus phi的十进制值

时间:2016-07-31 20:05:42

标签: c

当我在我的计算器Cos45上写字时,我得到一个十进制数= 0.707

如何在C中生成这样的数字。

我测试了这个:

printf ("type a degree between 0 - 360:\n");
scanf ("%f",&float1);
printf ("cosphi = %f",cosf(float1));

但它给了一个关闭号码。它产生cosphi = 0.52

3 个答案:

答案 0 :(得分:4)

您的计算器配置为以度为单位计算三角函数。

C的trig函数以弧度为单位。 (一个完整的圆是360度,2 * pi弧度。)

如果要将输入视为度数,则需要在将值传递给cosf()之前将其转换为弧度,方法是将其乘以180 / pi。

答案 1 :(得分:0)

我得到了它的工作。万分感谢:)。

#include <stdio.h>
int main ()
//Convert Trigonometric Angles into Decimals and Radians.
//Radians are number of Radiuses that are wrapped around the circumference.
//Pi for half the circle, Radius is wrapped 3.14 times on 180 degrees. r2=d1 .
//Circumference = 2radius * Pi = Diameter * Pi = 2Pi * radius .
//KHO2016.no2. mingw (TDM-GCC-32) . c-ansi .
{
//Declare
float flp1, flp2, flp3, flp4, pi;
int int1;

//valuate
pi = 3.141592654;
int1 = 180;

//calculate
printf ("type a degree between 0 - 360 : ");
scanf ("%f",&flp1);
flp2=int1/flp1;  // 180 is divided by desired angle
flp3=pi/flp2;    // Pi is divided by the result of 180 / desired angle = Radians
flp4=cosf(flp3); // Result of Pi divided by Radians and fed into the Cosf Radian modulus
printf ("The Decimal value of Cosinus %.1f degrees = %.3f\n",flp1,flp4);
printf ("Angle typed in Radians = %f",flp3);

//Terminate
return 0;

}

答案 2 :(得分:0)

作为@Keith Thompson的答案,C函数以弧度为单位,因此需要一定程度的弧度转换。

#ifndef M_PI
  #define M_PI 3.1415926535897932384626433832795
#endif
float angle_radians = angle_degrees * (float) (M_PI/180.0);

然而,直接按pi/180.0进行缩放,代码将获得更精确的答案,对于主要范围之外的角度,如果代码首先进行范围缩减,然后按{{1}进行缩放}。这是因为pi/180.0的缩放是不精确的,因为机器pi pi/180.0不是完全数学π。由float pi = 3.14159265;执行的弧度范围减小是错误的,因为给它的计算弧度值开始时是不精确的。使用度数,可以完全完成范围缩小。

cos()

sind()是一个正弦示例,通过缩小到更窄的间隔来表现更好。角度在-45°至+ 45°范围之外,有益处。