当我在我的计算器Cos45上写字时,我得到一个十进制数= 0.707
如何在C中生成这样的数字。
我测试了这个:
printf ("type a degree between 0 - 360:\n");
scanf ("%f",&float1);
printf ("cosphi = %f",cosf(float1));
但它给了一个关闭号码。它产生cosphi = 0.52
答案 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°范围之外,有益处。