Write a C program to receive values of latitude(L1, L2) and longitude(G1, G2), in degrees, of two places on the earth and output the distance (D) between them in nautical miles.
Formula For Distance in Nautical Miles
D = 3963 * acos( sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 – lon1) );
where lat1, lat2 are latitudes. lon1, lon2 are longitude.
Formula To Convert Degree To Radian
radian = degree * (PI/180.0);
where PI is 3.141592
Logic To Find Distance In Nautical Miles
User input the values of latitude(lat1, lat2) and longitude(lon1, lon2 ), in degrees. We convert it to radians. Next we use the formula below:
D = 3963 * acos( sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 – lon1) );
and out put the result on to the console.
Source Code: Calculate Distance in Nautical Miles: C Program
#include < stdio.h > #include < math.h > int main() { float lat1, lat2, lon1, lon2, D; const float PI = 3.141592; printf("Enter latitude(L1, L2)\n"); scanf("%f%f", &lat1, &lat2); printf("Enter longitude(G1, G2)\n"); scanf("%f%f", &lon1, &lon2); /* Convert Degrees To Radian */ lat1 = lat1 * ( PI / 180.0 ); lat2 = lat2 * ( PI / 180.0 ); lon1 = lon1 * ( PI / 180.0 ); lon2 = lon2 * ( PI / 180.0 ); D = 3963 * acos( sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(lon2 - lon1) ); printf("Distance in nautical miles is %f\n", D); return 0; }
Output:
Enter latitude(L1, L2)
52.3
43.2
Enter longitude(G1, G2)
12.3
15.6
Distance in nautical miles is 647.682434
Calculate Distance in Nautical Miles: C Program
[youtube https://www.youtube.com/watch?v=d88pWBloIOE]
For list of all c programming interviews / viva question and answers visit: C Programming Interview / Viva Q&A List
For full C programming language free video tutorial list visit:C Programming: Beginner To Advance To Expert