es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Advertencia: el formato ‘%f’ espera un argumento de tipo ‘float’, pero el argumento 2 tiene tipo ‘double’.

¡NECESITO AYUDA!
Estaba intentando enviar el siguiente desafío de HackerRank:
Tarea
Dado el precio de la comida (costo base de una comida), el porcentaje de propina (el porcentaje del precio de la comida que se agrega como propina) y el porcentaje de impuestos (el porcentaje del precio de la comida que se agrega como impuesto) para una comida, encuentra e imprime el costo total de la comida. Redondea el resultado al entero más cercano.

“`

incluir

incluir

int main()

{
int impuesto, propina;
doble comida;

scanf(“%f”,& comida);
scanf(“% d”,& propina);
scanf(“%d”,& impuesto);
comida = comida+(comidapropina/100))+(comidaimpuesto/100);
printf (“%d”,round(comida));

volver 0;

}


Después de compilar el código anterior. Siempre obtengo estos errores:
no
Hk2.c: 33:9: advertencia: el formato ‘% f’ espera un argumento de tipo ‘float *’, pero el argumento 2 tiene tipo ‘double *’ [-Wformat =]

Hk2.c: 37:11: advertencia: el formato ‘% d’ espera un argumento de tipo ‘int’, pero el argumento 2 tiene tipo ‘double’ [-Wformat =]

¿Cuál es el problema?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema radica en los especificadores de conversión empleados en las declaraciones scanf.

    En la primera declaración scanf, el especificador de conversión debería ser ‘%lf’ en vez de ‘%f’ ya que ‘mealc’ es de tipo double.

    En la segunda declaración scanf, el especificador de conversión debería ser ‘%lf’ en lugar de ‘d’ puesto que ‘tip’ también es de tipo double.

    Realizar estos cambios debería solucionar los errores.

Comments are closed.