如何在 C 中以度为单位使用三角函数?
How can I use trigonometric functions in C in degrees?
我需要在我的 C 程序中使用三角函数,但我遇到了一个问题,因为我无法控制我程序的所有代码,例如:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "function.h"
double f(double x);
int main()
{
double pointx,pointy;
scanf("%lf",&pointx);
pointy = f(pointx);
/* and then I will use pointy in some further places, but
somebody else provides me with "function.h" and the body of
the function f, so I don't know what it does */
return 0;
}
当我输入 10 而不是 x 时,我得到了一个错误的结果,因为 sin 函数接受弧度,而这个函数将由用户给出。我的意思是它是可变的,它可以包含线性部分和三角函数 part.When 我在那个函数中插入一个点我得到错误的结果,我想强调没有特定的函数它可以是任何函数,所以我不能简单地写一些将度数 x 转换为弧度 x 的东西。
如果我对您的代码示例的理解正确,您的程序将调用名为 f
的外部函数,该函数由其他人编写并提供给您。那个人还应该告诉你它期望什么输入,以及它 returns 是什么:例如,它需要一个以弧度表示的角度和 returns 另一个以弧度表示的角度。我们称其为 f
的 接口规范 。您不必确切地知道 f
在内部做了什么来了解它的接口规范是什么。
您的程序必须符合接口规范;例如,如果你想以度为单位读取用户输入的角度,你必须在调用 f
之前将值转换为弧度。但是 f
也必须符合规范;例如,如果记录为以弧度为单位输入,但实际上以度为单位输入,则 f
有一个错误,其他程序员有责任修复它。规范必须足够具体,让每个相关人员都知道他们应该做什么。 “f
可以是任何函数”是不够的。如果仅此而已,您需要与编写 f
的人交谈并使规范更具体,呃,更具体。
我需要在我的 C 程序中使用三角函数,但我遇到了一个问题,因为我无法控制我程序的所有代码,例如:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include "function.h"
double f(double x);
int main()
{
double pointx,pointy;
scanf("%lf",&pointx);
pointy = f(pointx);
/* and then I will use pointy in some further places, but
somebody else provides me with "function.h" and the body of
the function f, so I don't know what it does */
return 0;
}
当我输入 10 而不是 x 时,我得到了一个错误的结果,因为 sin 函数接受弧度,而这个函数将由用户给出。我的意思是它是可变的,它可以包含线性部分和三角函数 part.When 我在那个函数中插入一个点我得到错误的结果,我想强调没有特定的函数它可以是任何函数,所以我不能简单地写一些将度数 x 转换为弧度 x 的东西。
如果我对您的代码示例的理解正确,您的程序将调用名为 f
的外部函数,该函数由其他人编写并提供给您。那个人还应该告诉你它期望什么输入,以及它 returns 是什么:例如,它需要一个以弧度表示的角度和 returns 另一个以弧度表示的角度。我们称其为 f
的 接口规范 。您不必确切地知道 f
在内部做了什么来了解它的接口规范是什么。
您的程序必须符合接口规范;例如,如果你想以度为单位读取用户输入的角度,你必须在调用 f
之前将值转换为弧度。但是 f
也必须符合规范;例如,如果记录为以弧度为单位输入,但实际上以度为单位输入,则 f
有一个错误,其他程序员有责任修复它。规范必须足够具体,让每个相关人员都知道他们应该做什么。 “f
可以是任何函数”是不够的。如果仅此而已,您需要与编写 f
的人交谈并使规范更具体,呃,更具体。