Возникли проблемы с 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);
и ты должен быть в порядке.