c - 如何在 C 中使用以度为单位的三角函数?

标签 c function mapping trigonometry

我需要在我的 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/

相关文章:

c - 在 C 中观察另一个 linux 进程的网络事件的方法

c - 使用 do-while 搜索结构中的元素

javascript - 如何将用户选择的酒店房间乘以入住天数?

entity-framework - EF 代码优先相关实体根本不加载

c - 此 LDAP 错误是什么意思? "00000057: LdapErr: DSID-0C090B0B, comment: Error processing control, data 0, v3839"

c - getch(); C 和代码块中的运行时错误

php - PHP 中的 Schinke 拉丁词干提取算法

JavaScript 函数由 3 个函数组成

javascript - 从对象数组中获取特定数据并转换为对象

c# - 删除外键属性导致异常