// Read annual rainfall and plot as bar graph // This version asks the user how many years of rainfall they wish to plot // Andrew Taylor - andrewt@unsw.edu.au // 13/4/2017 /* Sample execution: % dcc plot_rainfall1.c % a.out How many years of rainfall do you want to graph: 10 Enter year: 2005 Enter rainfall(mm): 816 Enter year: 2006 Enter rainfall(mm): 994.0 Enter year: 2007 Enter rainfall(mm): 1499.2 Enter year: 2008 Enter rainfall(mm): 1082.6 Enter year: 2009 Enter rainfall(mm): 956.2 Enter year: 2010 Enter rainfall(mm): 1153.8 Enter year: 2011 Enter rainfall(mm): 1369.2 Enter year: 2012 Enter rainfall(mm): 1213.6 Enter year: 2013 Enter rainfall(mm): 1344.4 Enter year: 2014 Enter rainfall(mm): 893.8 1 asterisk == 100 mm of rainfall 2005 ******** 2006 ********* 2007 ************** 2008 ********** 2009 ********* 2010 *********** 2011 ************* 2012 ************ 2013 ************* 2014 ******** */ #include #define MAXIMUM_YEARS 20000 #define SCALE 100 int main(void) { int whichYear[MAXIMUM_YEARS]; double rainfall[MAXIMUM_YEARS]; int year, asterisk, nAsterisks, nYears; printf("How many years of rainfall do you want to graph: "); scanf("%d", &nYears); if (nYears > MAXIMUM_YEARS) { printf("Limiting years read to maximum possible: %d\n", MAXIMUM_YEARS); nYears = MAXIMUM_YEARS; } year = 0; while (year < nYears) { printf("Enter year: "); scanf("%d", &whichYear[year]); printf("Enter rainfall(mm): "); scanf("%lf", &rainfall[year]); year = year + 1; } printf("\n1 asterisk == %d mm of rainfall\n", SCALE); year = 0; while (year < nYears) { printf("%4d ", whichYear[year]); nAsterisks = rainfall[year] / SCALE; asterisk = 0; while (asterisk < nAsterisks) { printf("*"); asterisk = asterisk + 1; } printf("\n"); year = year + 1; } return 0; }