Code:
#include <stdio.h>
#include <string.h>
struct record
{
char name[30], lat_dir[30], lon_dir[30];//declare city name as name
int pop; //declare population as pop
int lat_deg, lat_min, lon_deg, lon_min;
float lat_sec, lon_sec;
};
void display(struct record city);
int main()
{
struct record city;
printf("\nPlease enter city name : ");
//scanf("%[^\n]", &city.name);
scanf("%[^\n]", city.name);
printf("\nPlease enter population : ");
scanf("%d", &city.pop);
printf("\nFor location...\n");
printf("Please enter latitude of city in degrees, minutes, seconds and its cardinal direction(N/S) : \n");
scanf("%d %d %f", &city.lat_deg, &city.lat_min, &city.lat_sec);
if(city.lat_deg >= 0 && city.lat_deg <= 90)
//city.lat_dir = 'N';
strcpy(city.lat_dir,"N");
else if (city.lat_deg >= -90 && city.lat_deg < 0)
//city.lat_dir = 'S';
strcpy(city.lat_dir,"S");
else
//city.lat_dir = 'INVALID!';
strcpy(city.lat_dir,"INVALID!");
printf("Please enter longitude of city in degrees, minutes, seconds and its cardinal direction(E/W) : \n");
scanf("%d %d %f", &city.lon_deg, &city.lon_min, &city.lon_sec);
if(city.lon_deg >= 0 && city.lon_deg <= 180)
//city.lon_dir = 'E';
strcpy(city.lon_dir,"E");
else if (city.lon_deg >= -180 && city.lon_deg < 0)
//city.lon_dir = 'W';
strcpy(city.lon_dir,"W");
else
//city.lon_dir = 'INVALID';
strcpy(city.lon_dir,"INVALID!");
display(city);
}
void display(struct record city)
{
printf("\n\n----------------------");
printf("\nDisplaying information");
printf("\n----------------------");
printf("\nCity name : %s", city.name);
printf("\nPopulation : %d", city.pop);
printf("\nLocation : %d%c\%d\'%f\" %s", city.lat_deg, 0xf8, city.lat_min, city.lat_sec, city.lat_dir);
printf("\t %d%c\%d\'%f\" %s", city.lon_deg, 0xf8, city.lon_min, city.lon_sec, city.lon_dir);
printf("\n");
}