Code:
#include <stdio.h>
#define max_month 12
int main ()
{
char *month []= {"Jan","Feb","Mar","Apr", "May",
"Jun","Jul","Aug","Sep", "Oct",
"Nov", "Dec"};
double current_rain[12]= {3.11,2.62,9.20, 1.48, 5.42, 7.14,
3.64, 4.57,4.23, 1.79, 0.71, 2.43};
double previous_rain[12]= { 2.92, 1.71, 5.05, 4.16, 4.49,3.02,
1.99,2.46, 5.30, 3.34, 5.76, 4.68};
double total_current = 0.0;
double total_previous = 0.0;
double max_current = 0.0;
int max_month_current = 0;
double max_previous = 0.0;
int max_month_previous = 0;
double ave_current = 0.0;
double ave_previous = 0.0;
int i = 0;
printf(" Table for monthly rainfall ");
printf("\n");
/*for current year */
printf(" ");
for(i=0; i<max_month; i++)
{
printf("%s ",month[i]);
}
printf("\n");
printf("This yr ");
for(i=0; i<max_month; i++)
{
printf("%.2f ",current_rain[i]);
}
printf("\n");
printf("Last yr ");
for(i=0; i<max_month; i++)
{
printf("%.2f ",previous_rain[i]);
}
printf("\n");
/* for current year */
for(i=0; i<max_month; i++)
{
if(current_rain[i]>max_current)
{
max_current = current_rain[i];
max_month_current = i;
}
total_current = current_rain[i] + total_current;
}
ave_current= total_current / (double)max_month;
/* for previuos year*/
for(i=0; i<max_month; i++)
{
if(previous_rain[i]>max_previous)
{
max_previous = previous_rain[i];
max_month_previous = i;
}
total_previous = previous_rain[i] + total_previous;
}
ave_previous= total_previous / (double)max_month;
/* print results */
printf("\n\n");
printf("The rainfall for this year: %.2f\n",total_current);
printf("The rainfall for previous year: %.2f\n",total_previous);
printf("Average monthly rainfall for this year: %.2f\n", ave_current);
printf("Average monthly rainfall for last year: %.2f\n", ave_previous);
printf("Month of highest rainfall for this year: %s\n", month[max_month_current]);
printf("Month of highest rainfall for last year: %s\n", month[max_month_previous]);
return 0;
}
The problems were in the maximum search parts of the code.