Question
C program you wrote to use the following functions . I did this problem before what know i have to use functions in that as
C program you wrote to use the following functions. I did this problem before what know i have to use functions in that as describes below: please help me.
- Generate a graph that compares, on a month-by-month basis, the monthly rainfall for Kamloops for the first half of 2018 (i.e. Jan June) versus the normal (30 year average) rainfall for Kamloops for the same months.
- Create and call a function to return the month name to main()
- Create and call ONE function to print one line of symbols.
- Call it the first time to print the line of *
- Call it a second time to print the line of!
- No if statement is needed or allowed in this function
- Think very carefully about the parameter list for this function
- Call a function to print the scale and the legend as shown below.
- Call a function to find and print the total rainfall for each data set, and also the comparison of the two totals. The function will state whether 2018 was wetter, drier, or equal to a normal 6 month rainfall and by how much.
- Call a function to determine which month in 2018 had the highest rainfall, and print the month name (using the function described in #2), the rainfall amount and how that amount compares to the normal amount for that month.
-
#include
void Fun(int size, char c) //Function prototypes void drawGraph(double[], double[],int a); double totalNormalRainfall(double[],int a); double total2018Rainfall(double[], int a); void wetterDrierStatus(double, double); void highestRainFall(double[], double[], int a);
//Main function int main() { //Variables for total rainfalls double normal, rain2018;
//Rainfalls stored arrays double monthRainFall[]= { 3.1,4.7,4.2,5.0,4.0,6.3 }; double rainAmt2018[]= { 5.4,4.4,4.1,6.0,5.6,4.5 }; //printf("Enter the normal rainfall: "); //scanf("%lf %lf %lf %lf %lf %lf",&monthRainFall[0],&monthRainFall[1],&monthRainFall[2],&monthRainFall[3],&monthRainFall[4],&monthRainFall[5]); //printf("Enter the 2018 rainfall: ");
//scanf("%lf %lf %lf %lf %lf %lf", &rainAmt2018[0],&rainAmt2018[1],&rainAmt2018[2],&rainAmt2018[3],&rainAmt2018[4],&rainAmt2018[5]);
//Call draw function for graph display drawGraph(monthRainFall, rainAmt2018,6);
//Find total normal rain falla normal = totalNormalRainfall(monthRainFall, 6);
//Find total 2018 rain fall rain2018 = total2018Rainfall(rainAmt2018, 6);
//Display details printf("Total normal rainfall was %.2lf mm. ",normal); printf("Total rainfall for 2018 was %.2lf mm. ",rain2018);
//Find wetter/drier states wetterDrierStatus(normal, rain2018);
//Find highest rainfall in 2018 highestRainFall(monthRainFall, rainAmt2018, 6); printf(" "); return 0; }
//Function to display graph void drawGraph(double rainFall[], double rainAmt[],int a) { //Create a month array char month[6][10] = {"January","February","March","April","May","June"};
//printf("%c",month[0]);
//Header printf("Rainfall comparison for January to June 2018 ");
//Loop to print graph for (int i = 0; i < a; i++) { printf("%3s%c ", month[i]); printf("%10c ",'|'); for (double j = 0; j <=rainFall[i]; j+=.2) { printf("%c", '*'); } printf(" "); printf("%15c", '|'); for (double j = 0; j <= rainAmt[i]; j += .2) { printf("%c", '!'); } printf(" "); printf(" "); } printf("%10c", '|'); int j = 0,k=1; for (int i = 1; i <= 40; i++) { if (i!=0&&i%5==0) { printf("%d", k); k++; } else { printf("%c", '-'); } }
//Display legend section printf(" "); printf("LEGEND: (numbers below are for illustration purpose only "); printf("* - normal rainfall for a given month "); printf("! - 2018 rainfall for a given month "); }
//Method to find total normal rain fall double totalNormalRainfall(double rainfall[],int a) { double total = 0; for (int i = 0; i < a; i++) { total += rainfall[i]; } return total; }
//Method to find total 2018 rain fall double total2018Rainfall(double rainfall[], int a) { double total = 0; for (int i = 0; i < a; i++) { total += rainfall[i]; } return total; }
//Method to find wetter or drier year //If difference negative, then drier //Otherwise wetter void wetterDrierStatus(double p, double q) { double diff = q - p; if (diff < 0) { printf("2018 was a drier year than normal by %.2lf mm. ",(-1*diff)); } else { printf("2018 was a wetter year than normal by %.2lf mm. ", diff); } }
//Method to find highest rain fall in 2018 void highestRainFall(double rainfall[], double rain2018[], int a) { double highest = rain2018[0],diff; int index=0; char month[6][10] = {" January","February","March","April","May","June"};
//Loop to get highest rainfall month index and amount for (int i = 1; i < a; i++) { if (highest < rain2018[i]) { highest = rain2018[i]; index = i; } } //Print details printf("The month and rainfall amount, with the highest rainfall was %s and %.2lf mm ", month + index, rain2018[index]);
//Compare with normal rainfall and display details diff = rain2018[index] - rainfall[index]; if (diff < 0) { printf(",which is lower than the normal rainfall by %.2lf mm", (-1 * diff)); } else { printf(",which is higher than the normal rainfall by %.2lf mm ",diff); } }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started