学习笔记-用c实现三角函数的计算

刚刚编好,记录一下:

#include <stdio.h>
#include <math.h>
int main(void)
{
    while(1)
    {
        double n;
        double s;
        double c;
        double t;
        double pi = 3.14159265358979323846264338327;
        scanf("%lf",&n);
        s=sin(n*2*pi/360); //求n的sin()值,并返回给n
        c=cos(n*2*pi/360); //求n的cos()值,并返回给n
        t=tan(n*2*pi/360);//求n的tan()值,并返回给n
         printf("sin %f = %.15lf\n",n,s);//输出
        printf("cos %f = %.15lf\n",n,c);//输出
        printf("tan %f = %.15lf\n",n,t);//输出
    }
}

π用了近似值,不过也够用了。值得注意的是math.h中的三角函数使用弧度做单位的,必须进行转换。不过,这只是输入以度为单位的三角函数值,也有以度分秒为单位的:

#include <stdio.h>
#include <math.h>
int main(void)
{
    while(1){
    double a;
    double b;
    double c;
    double n;
    printf("输入:度,分,秒\n");
    scanf("%lf,%lf,%lf",&a,&b,&c);
    n = a + b/60 +c/3600;
    printf("度数:%.10lf\n",n);
        double s;
        double t;
        double pi = 3.14159265358979323846264338327;
        s=sin(n*2*pi/360); //求n的sin()值,并返回给n
        c=cos(n*2*pi/360); //求n的cos()值,并返回给n
        t=tan(n*2*pi/360);//求n的tan()值,并返回给n
        printf("sin %f = %.15lf\n",n,s);//输出
        printf("cos %f = %.15lf\n",n,c);//输出
        printf("tan %f = %.15lf\n",n,t);//输出

    }
 }

这里面顺便将度分秒格式的转化为了度,还是挺好用的。

-------------------------------------------------------------------------------------------2018-6-18更新----------------------------------------------------------------------------------------------------------------------------

最近又尝试用上面算出的值反过来求角度,用了反三角函数,结果如下:

#include <stdio.h>
#include <math.h>
int main(void)
{
    while(1)
    {
        double n;
        double s;
        double c;
        double t;
        double pi=3.14159265358979323846264338327;
        printf("输入:sin/cos/tan值\n");
        scanf("%lf",&n);
        s=asin(n)*360/(2*pi); //求n的asin()值,并返回给n
        c=acos(n)*360/(2*pi); //求n的acos()值,并返回给n
        t=atan(n)*360/(2*pi);//求n的atan()值,并返回给n
        printf("asin %f = 角度%.15lf\n",n,s);//输出
        printf("acos %f = 角度%.15lf\n",n,c);//输出
        printf("atan %f = 角度%.15lf\n",n,t);//输出
    }
 }

反三角函数算出来的是弧度,需要转化为角度。

posted @ 2018-06-17 19:18  emptyahxg  阅读(1427)  评论(0编辑  收藏  举报