如何调试我的C数学程序的一部分?

时间:2015-12-08 15:37:19

标签: c

我坚持使用此代码,并在网上搜索了答案,但我没有找到任何答案。

代码被编译但是在选项1和2中代码没有得到真正的答案,我不知道问题是关于像double和float这样的问题还是因为一个愚蠢的错误。

[myserver]
... my server settings ...
AnsiNPW = NO
QuotedID = NO

2 个答案:

答案 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()和朋友中,您%fdouble使用float,因为任何float参数都会自动提升为double