Я пишу программу, которая преобразует десятичные градусы в градусы, минуты, секунды. Это то, что он должен делать:C программа не печатает значения
-118.1406209154 = 118 degrees 8 minutes 26.2342 seconds West.
W If it is negative then it is either west longitude or south latitude
118 The degrees are left of the decimal place
8 Multiply the decimal portion (0.140620915) by 60 to get decimal minutes (8.4372549). The minutes are left of the decimal place.
26.2353 Multiply the decimal portion (0.4372549) by 60 to get decimal seconds.
Это код, который я до сих пор, однако, проблема, когда я запускаю его он печатает только значение decimalDegrees и больше ничего. Я не могу понять, почему. Любой совет/помощь очень ценится.
double decimalDegrees = -118.1406209154;
double degrees;
double minutes;
double seconds;
char longitude;
char latitude;
double temp;
int main(int argc, char **argv)
{
minutes = decimalDegrees - (int)decimalDegrees; //get the decimal portion of decimalDegrees
degrees = decimalDegrees - minutes; //get degrees by removing the decimal portion
minutes = minutes*60.0;
temp = minutes - (int)minutes; //get decimal portion
minutes = minutes - temp; //remove decimal portion from minutes
seconds = temp * 60.0;
printf("%0.10lf ", decimalDegrees);
printf("%lf degrees ", degrees);
printf("%lf minutes ", minutes);
printf("%0.4lf seconds ", seconds);
return 0;
}
Он печатает '-118.1406209154 -118.000000 градусов -8.000000 минут -26.2353 секунд' в моей машине – chouaib
Я вижу. Это очень странно. – user3188716
Поместите '\ n' в конец вашей последней строки' printf() 'и посмотрите, не изменилось ли это. –