这是我的代码:
#include <stdio.h>
double abs_diff(double x, double y) {
double a = x - y;
if ( a < 0 ) {
a = -a;
}
printf ("$i", a);
return 0;
}
int main() {
abs_diff( 1.0, 4.0 );
return 0;
}
我编译代码很好。然而,当我运行该程序时,它返回看似随机且不同的数字。该程序应该打印两个数字的绝对值。
当我将变量 a 更改为整数时,问题消失并打印整数,但我需要结果为 double 型,以防输入 double 型。我认为这与返回值有关?已经用尽了我的大部分选择。
感谢您的帮助或建议!
最佳答案
问题是 printf 格式。
您必须使用 %lf 进行双输出,因此:
printf ("%lf", a);
关于C 函数返回(看似)随机整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25969650/