Estoy en una clase de programación donde acabamos de cambiar de python a C. Estoy teniendo un problema, ya que C no parece realizar operaciones matemáticas con la facilidad con que python lo hace, o me falta algo cuando se trata de matemáticas en C.Nuevo en C, y todos los cálculos matemáticos están ligeramente fuera de
Para mi tarea, estoy escribiendo un programa que recolecta cuántas millas por cada galón de un automóvil del usuario, cuánto cuesta el gas por galón y cuántas millas recorren cada mes. Luego, el programa les dice cuánto pueden esperar pagar por el gas del mes actual. Mi código actual es la siguiente:
#include <stdio.h>
int main() {
int mpg, miles;
double gas_price;
printf("How many miles per gallon does your car get?\n");
scanf("%d", &mpg);
printf("What is the price of gasoline per gallon?\n");
scanf("%lf", &gas_price);
printf("How many miles do you drive in a month?\n");
scanf("%d", &miles);
printf("The cost of gas this month is $%.2lf\n", miles/mpg * gas_price);
printf("%d %d %d", mpg, gas_price, miles);
return 0;
}
Cuando ejecuto el programa con los valores de 24 para "mpg", 3,00 para "gas_price", y 1000 millas, el total asciende a $ 123.00. Esto no es correcto, y se trata de dos dólares menos que el precio real. Cuando toma ((1000/24) * 3.00), debe obtener 125 pares. Agregué una cadena para imprimir todos los valores para ver qué C estaba usando para la fórmula en la línea 23, y mientras mpg y gas_price son correctos, "millas" aparece con un valor de 1,074,266,112. Sé que debe haber algún error aquí, ya que arrojaría el resultado de más de 2 dólares, pero no puedo evitar pensar que está relacionado.
Me disculpo por la longitud de la pregunta, pero quería ser lo más específico posible, y estoy completamente perplejo de por qué C está leyendo esto de manera tan extraña.
Así es como escribir una pregunta clara: buen trabajo. – YXD