使用 float 和 printf 的 C 有问题

Having issues with C using float and printf

我正在尝试 运行 C 中的一些基本代码来声明 2 个浮点变量,然后将它们相除并将该值放入第三个变量中。在此之后我打印所有 3.

#include <stdio.h>
int main ()
{
  /* variable definition: */
  float a, b, c; 
  /* variable initialization */
  a = 1.2;
  b = 2.7;  
  c = a / b;
  printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c);  
   return 0;
}

我正在使用在线编译器 "www.ideone.com" 编译和 运行 代码,这是我得到的结果:

Success time: 0 memory: 2156 signal:0

浮点数 (a,b) 和商 (c) 是:1073741824,1072902963,-1610612736

任何人都可以看看我是否在代码中犯了错误?它适用于 class,并且在我从 int 更改为 float 之前,每一步的方向都运行良好。

您想打印浮点数,因此更改为:

printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c);

对此:

printf("Floats (a,b) and quotient (c) are : %f,%f,%f \n", a,b,c);

有关更多信息,请查看 ref

%d 不是浮点数的正确转换,请改用 %f

变化:

printf("Floats (a,b) and quotient (c) are : %d,%d,%d \n", a,b,c);

至:

printf("Floats (a,b) and quotient (c) are : %f,%f,%f \n", a,b,c);

你应该没问题。