Jestem w klasie programistycznej, w której właśnie przełączyliśmy się z Pythona na C. Mam z tym problem, ponieważ C nie wydaje się wykonuj operacje matematyczne z łatwością, którą wykonuje pyton, albo brakuje mi czegoś, jeśli chodzi o matematykę w C.Nowość w C, a wszystkie obliczenia matematyczne są nieznacznie wyłączone
Dla mojej pracy domowej, piszę program, który zbiera ile kilometrów do samochodu użytkownika galon dostaje, ile kosztuje ich gaz za galon i ile kilometrów jeżdżą każdego miesiąca. Następnie program informuje ich, ile mogą zapłacić za gaz w bieżącym miesiącu. Mój bieżący kod wygląda następująco:
#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;
}
Kiedy uruchamiam program z wartościami 24 dla „mpg”, 3,00 dla „gas_price” i 1000 mil, łączna przychodzi do $ 123.00. To nie jest poprawne i wynosi około dwóch dolarów mniej niż rzeczywista cena. Kiedy bierzesz ((1000/24) * 3,00), powinieneś dostać 125 równych. Dodałem ciąg znaków, aby wydrukować wszystkie wartości, aby zobaczyć, co C było używane dla formuły w linii 23, i podczas gdy wartości mpg i gas_price są poprawne, "mile" pokazuje się jako o wartości 1 074 266 136. Wiem, że musi tu być jakiś błąd, ponieważ spowodowałoby to wynik ponad 2 dolary, ale nie mogę pomóc, ale myślę, że jest to powiązane.
Przepraszam za długość pytania, ale chciałem być tak szczegółowy, jak to możliwe, i jestem całkowicie zaskoczony, dlaczego C czyta to tak dziwnie.
Oto jak napisać jasne pytanie - dobra robota. – YXD