我需要在我的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函数接受radian,这个函数将由用户给出。我的意思是它是可变的,它可以包含线性部分和三角部分。当我在该函数中插入一个点我得到错误的结果时,我想要重新确定它没有某个函数它可以是任何函数,所以我不能简单地写出将度数x转换为弧度x的东西。
答案 0 :(得分:0)
如果我正确理解您的代码示例,您的程序会调用一个名为f
的外部函数,该函数由其他人编写并提供给您。那个人也应该告诉你它期望输入什么,以及它返回什么:例如,它以弧度为单位,以弧度返回另一个角度。我们称之为f
的接口规范。您不必确切地知道f
内部确实知道其接口规范是什么。
您的程序必须符合接口规范;例如,如果要以度为单位读取用户输入的角度,则必须在调用f
之前将值转换为弧度。但f
也必须符合规范;例如,如果记录为以弧度为单位输入但实际上以度为单位输入,则f
有一个错误,而另一个程序员有责任修复它。规范必须足够具体,每个人都知道他们应该做什么。 &#34; f
可以是任何功能&#34;是不足够的。如果您拥有所有内容,则需要与撰写V1
的人交谈,并使规范更具呃,具体。