这是我的代码:
#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。我认为这与回报价值有关?已经用尽了我的大部分选择。
感谢您提供任何帮助或建议!
答案 0 :(得分:3)
问题是printf格式化。
您必须使用%lf进行双输出,因此:
printf ("%lf", a);