Возникли проблемы с C с использованием float и printf

Я пытаюсь запустить некоторый базовый код на C, чтобы объявить 2 переменные типа float, а затем разделить их и поместить это значение в 3-ю переменную. После этого я печатаю все 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

Кто-нибудь может увидеть, если я допустил ошибку в коде? Это для класса, и все работало нормально для каждого шага указаний, пока я не перешел с int на float.

2 ответа

Решение

Вы хотите напечатать 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);

Для получения дополнительной информации, проверьте ссылку.

%d неверное преобразование для float, используйте %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);

и ты должен быть в порядке.

Другие вопросы по тегам