fork download
  1. #include <stdio.h>
  2.  
  3. // Función para convertir DMS a grados decimales
  4. double dmsToDecimal(int grados, int minutos, double segundos, char direccion) {
  5. double decimal = grados + (minutos / 60.0) + (segundos / 3600.0);
  6. if (direccion == 'S' || direccion == 'W') {
  7. decimal = -decimal;
  8. }
  9. return decimal;
  10. }
  11.  
  12. int main() {
  13. // Coordenadas de ejemplo
  14. char direcciones[][2] = { {'N', 'W'}, {'N', 'E'}, {'N', 'E'}, {'S', 'E'}, {'S', 'E'}, {'S', 'W'}, {'S', 'W'} };
  15. int coordenadas[][4] = {
  16. {4, 8, 54, 8}, // N 4° 8' 54.8" W
  17. {10, 15, 54, 5}, // N 10° 15' 54.5" E
  18. {26, 28, 11, 8}, // N 26° 28' 11.8" E
  19. {80, 37, 0, 2}, // S 80° 37' 0.2" E
  20. {0, 0, 0, 0}, // S 0° 0' 0.0" E
  21. {70, 36, 31, 9}, // S 70° 36' 31.9" W
  22. {80, 34, 47, 95} // S 80° 34' 47.95" W
  23. };
  24.  
  25. // Convertir las coordenadas a decimales
  26. for (int i = 0; i < 7; i++) {
  27. double latitud = dmsToDecimal(coordenadas[i][0], coordenadas[i][1], coordenadas[i][2] + coordenadas[i][3] / 100.0, direcciones[i][0]);
  28. double longitud = dmsToDecimal(coordenadas[i][2], coordenadas[i][3], 0, direcciones[i][1]);
  29. printf("Punto %d: Latitud = %.6f, Longitud = %.6f\n", i + 1, latitud, longitud);
  30. }
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 5292KB
stdin
Standard input is empty
stdout
Punto 1: Latitud = 4.148356, Longitud = -54.133333
Punto 2: Latitud = 10.265014, Longitud = 54.083333
Punto 3: Latitud = 26.469744, Longitud = 11.133333
Punto 4: Latitud = -80.616672, Longitud = 0.033333
Punto 5: Latitud = -0.000000, Longitud = 0.000000
Punto 6: Latitud = -70.608636, Longitud = -31.150000
Punto 7: Latitud = -80.579986, Longitud = -48.583333