Спецификатор формата %f
ожидает double
(float
неявно преобразуется в double
для функций с переменными числами). Если variable_red
и др. Не являются float
или double
переменными, то printf
будет неправильно обрабатывать аргументы, и это может объяснить, почему целое число id
печатается неправильно.
Попробуйте это:
if (id==1)
printf("This is output %f %f %f %i\n", (double)entire_red[id],(double)entire_green[id],(double)entire_blue[id],id);
В качестве альтернативы, убедитесь, что вы используете правильные спецификаторы формата для переменных entire_red
, entire_green
и entire_blue
.