#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;
}


无论我为hypotnuseopposite提供什么值,我得到的输出都是0.000000。请说明代码有什么问题?

最佳答案

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()

10-04 12:26