2014-09-22 4 views
0

Я пишу программу, которая преобразует десятичные градусы в градусы, минуты, секунды. Это то, что он должен делать: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; 
} 
+0

Он печатает '-118.1406209154 -118.000000 градусов -8.000000 минут -26.2353 секунд' в моей машине – chouaib

+0

Я вижу. Это очень странно. – user3188716

+1

Поместите '\ n' в конец вашей последней строки' printf() 'и посмотрите, не изменилось ли это. –

ответ

0

Это работает для меня до сих пор. Возможно, вы должны попробовать это с помощью другого компилятора, если вы используете систему на основе unix, вы можете попробовать использовать GCC, если вы этого еще не сделали, или Xcode, если вы используете Mac, а если запустить Windows MinGW, это был популярный выбор (решение GCC для окон).

Принимая во внимание то, что уже сказали другие, вы можете улучшить свой код немного, пока вы на нем. Как предположил Павел, использование %lf здесь не нужно использовать в printf, но если вы намерены в дальнейшем вводить свои собственные значения, вы будете использовать %lf для чтения в двухместных номерах, используя scanf().

Смежные вопросы