#include <cs50.h>
#include <stdio.h>
float sine(float a, float b);
int main()
{
printf ("Choose an option:\n1- Sin\n2-Cos\n3-Tan\n");
int option = get_int();
if (option==1)
{
printf("What is the hypotnuse of the triangle?\n");
float hypotnuse = get_float();
printf("What is the opposite side of the triangle?\n");
float opposite = get_float();
sine(opposite, hypotnuse);
printf ("The answer is %f", sine);
}
// else … cosine, tangent
}
float sine(float a, float b)
{
return a/b;
}
无论我为hypotnuse
和opposite
提供什么价值,我得到的输出都是0.000000
。请解释代码有什么问题?
答案 0 :(得分:6)
sine
是函数sine()
的地址。
您必须使用函数sine()
的返回值:
float result = sine(opposite, hypotnuse);
printf("The answer is %f\n", result);
在C中有不同的方法可以做到这一点,另一个像jonathan-leffler建议的那样“动态”使用结果:
printf("sine(%f, %f) = %f\n", opposite, hypotnuse, sine(opposite, hypotnuse));
这是有效的,因为调用函数sine()
的结果将作为参数直接发送到printf()
。