#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
。请说明代码有什么问题? 最佳答案
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()
。