C函数返回(看似)随机整数

时间:2014-09-22 08:28:48

标签: c function double main

这是我的代码:

#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。我认为这与回报价值有关?已经用尽了我的大部分选择。

感谢您提供任何帮助或建议!

1 个答案:

答案 0 :(得分:3)

问题是printf格式化。

您必须使用%lf进行双输出,因此:

printf ("%lf", a);