我需要在我的 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 函数接受弧度,并且该函数将由用户给出。我的意思是它是可变的,并且它可以包含线性部分和三角部分。当我在该函数中插入一个点时,我得到错误的结果,我想强调没有特定的函数,它可以是任何函数,所以我无法简单地编写将角度 x 转换为弧度 x 的内容。
最佳答案
如果我正确理解您的代码示例,您的程序将调用一个名为 f
的外部函数,该函数是其他人编写并提供给您的。该人还应该告诉您它期望什么输入以及它返回什么:例如,它接受一个以弧度为单位的角度并返回另一个以弧度为单位的角度。我们称之为f
的接口(interface)规范。您不必确切知道 f
内部做了什么就知道它的接口(interface)规范是什么。
你的程序必须符合接口(interface)规范;例如,如果您想读取用户输入的角度(以度为单位),则必须在调用 f
之前将该值转换为弧度。但f
也必须符合规范;例如,如果记录为以弧度为单位输入,但实际上以度数为单位输入,则 f
有错误,其他程序员有责任修复它。而且规范必须足够具体,以便每个相关人员都知道他们应该做什么。 “f
可以是任何函数”是不够的。如果这就是您所拥有的一切,您需要与编写 f
的人交谈,并使规范更加,呃,具体。
关于c - 如何在 C 中使用以度为单位的三角函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49498586/