我坚持使用此代码,并在网上搜索了答案,但我没有找到任何答案。
代码被编译但是在选项1和2中代码没有得到真正的答案,我不知道问题是关于像double和float这样的问题还是因为一个愚蠢的错误。
[myserver]
... my server settings ...
AnsiNPW = NO
QuotedID = NO
答案 0 :(得分:2)
在您的函数twoPoints
-
scanf("%1f %1f %1f %1f",&x1,&y1,&x2,&y2);
而不是上面试试这个 -
scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2); // %lf not %1f
与其他功能类似。
注意 - 此外,您的函数在定义期望参数时,但是当您在main
中调用它们时,您不会传递任何参数。比如这个 -
hypotenuseInTriangular(); // expects 2 double arguments
使用正确的参数调用它们,并正确声明原型。
答案 1 :(得分:2)
在您的函数twoPoints()
中,您使用了错误的格式说明符
scanf("%1f %1f %1f %1f",&x1,&y1,&x2,&y2);
这些可能是错别字或复制错误,因为1
(数字1)看起来很像l
(字母)。该行应
scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
并且在进行此校正后,该功能起作用。
请注意,格式说明符中的小写L
代表long
。在scanf()
和朋友中,对于float
变量输入,您使用%f
,对于double
变量,您使用%lf
。但是在printf()
和朋友中,您%f
和double
使用float
,因为任何float
参数都会自动提升为double
。