Question 01: The longitude of a geographic location can be expressed in one the
ID: 3673184 • Letter: Q
Question
Question 01: The longitude of a geographic location can be expressed in one the following three formats: Decimal degrees. Example: 50.15395 Degrees, minutes, and seconds. Example: 50 9 14.220000 Degrees and minutes. Example: 50 9.237000 Write a single function C program that displays the following menu: 1. Decimal degree input 2. Degrees, minutes, and seconds input 3. Degrees and Minutes input It then prompts the user to select his input choice and reads that choice. If the choice is invalid your program must display an appropriate error message and terminate; otherwise it reads the input. If the input is invalid your program must display an appropriate error message and terminate; otherwise it converts the input to each of the other two longitude formats and then displays each one of these formats Note: Your program must be general and it must behave as in the sample program runs below: Hint A longitude can have values from 0 degrees to 180 degrees inclusive, i.e., 0 3 degrees s 180 01 degree = 60 minutes, 1 minute= 60 seconds. * A minute can have values in the interval 10 … 60), ie.. 0 minutesExplanation / Answer
Please find the partial code below, hopes it will help :
#include <stdio.h>
void printMenu(){
printf("Enter an option");
printf("1. Decimal degree input");
printf("2. Degrees, minutes, and seconds input");
printf("3. Degrees and Minutes input");
}
int main(void)
{
int option;
printMenu();
scanf("%d",&option);
if(option == 1){
float dec;
printf("Please input the value: ");
scanf("%f", &dec);
int deg = (int)dec;
// int min = (int)round(fabs(dec - trunc(dec)) * 1e4);
float min = (dec - deg) * 60;
int minAlone = (int)min;
float sec = (min - minAlone) *60;
int secAlone = (int)sec;
printf("Degrees, minutes, and seconds : = %d %d %d",deg,minAlone,sec);
printf("Degrees and minutes = %d %f",deg,min);
}else if(option == 2) {
char *in;
printf("Please input the value: ");
scanf("%s", &in);
}
return 0;
}