2016-03-27 2 views
-2

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

#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 

поплавков (а, б) и частное (с): 1073741824,1072902963, -1610612736

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

+0

% d ожидает целых аргументов, см. Документацию printf. – fvu

+0

http://www.cplusplus.com/reference/cstdio/printf/% d для целых чисел,% f для поплавков. – OldProgrammer

ответ

1

Вы хотите напечатать поплавки, таким образом, изменить это:

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.

+1

Спасибо, что работал отлично, я понятия не имел, что мне нужно было сделать, или что это было специфично для определенного типа данных! –

+0

Теперь вы знаете @RickHammer! ;) – gsamaras

0

%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); 

и вы должны быть хорошо.

Смежные вопросы