Hello everyone,
I am currently in a C class and I am having trouble with the following exercise. I have started but I am stuck, can anyone help?
You are developing a database of measured meteorological data for use in weather and climate research. Define a structure type measured_data_t (which I have done) with components site_id_num (a four digit integer), wind_speed, day_of_month, and temperature. Each site measures its data daily, at noon local time. Write a program that inputs a file of measured_data_t records and determines the site with the greatest variation in temperature (defined here as teh biggest difference between extrema) and the site with the highest average wind speed for all the days in the file. You may assume that there will be at most ten sites. Test the program on the following July daily data collected over one week at three sites:
ID Day Wind Speed (knots) Temperature (deg C)
2001 10 11 30
2001 11 5 22
2001 12 18 25
2001 13 16 26
2001 14 14 26
2001 15 2 25
2001 16 14 22
3345 10 8 29
3345 11 5 23
3345 12 12 23
3345 13 14 24
3345 14 10 24
3345 15 9 22
3345 16 9 20
3819 10 17 27
3819 11 20 21
3819 12 22 21
3819 13 18 22
3819 14 15 22
3819 15 9 19
3819 16 12 18
#include <stdio.h>
#include <math.h>
#include <string.h>
#define Max_sites 10 /* maximum number of sites allowed */
typedef struct
{
int site_id_num[4]; /* id number of the site */
int wind_speed[3]; /* the wind speed in knots */
int day_of_month[2]; /* the day of the month written as dd */
int temperature[2]; /* temp in celcius */
}measured_data_t;
{
measured_data_t current_measured,
previous_measured,
blank_measured = {"", 0,0,0,0}
}
int
main(void)
{
/* DEFINE UNITS AND VARIABLES HERE!!!!!*/
int fscan_measured(FILE *filep, measured_data_t *measuredp);
/* Fills in input data into measured_data_t
* Integer returns as an indication of success or failure
* With 1 => successful input of one site
* and 0 => error encountered */
int
fscan_measured(FILE *filep, /* input - file pointer */
measured_data_t *measuredp) /* output - measured_data_t structure to fill */
{
int status;
status = fscanf(filep, "%d%d%d%d", measuredp->site_id_num
measuredp->wind_speed
measuredp->day_of_month
measuredp->temperature;
if (status == 4)
status =1;
else if (status !=EOF)
status =0;
return (status);
}
}
/*
*Opens database file measured_data_t.dat and gets data to to place until end of file is encountered
*/
void
measured_data_t[] /* output - array of data */
{
FILE *inp;
measured_data_t;
int i, status;
inp = fopen("measured_data_t.dat", "r");
i = 0;
for (status = fscan_measured(inp, &data);
status == 1 && i < Max_sites;
status = fscan_measured(inp, &data)) {
units[i++] = data
}
fclose(inp);
/*
* Compiles data and finds the average windspeed at each site ????????
*/
}
}
}