// C code
// This program will input and store meteorological data into an array.
// Developer: Vincent Perez CMIS102
// Date: Mar 26, 2017
#define NUMMONTHS 6
#define NUMYEARS 2
#include <stdio.h>
// function prototypes
void inputdata( ) ;
void printdata( ) ;
// Global variables
// These are available to all functions
float Raindata[ NUMYEARS] [ NUMMONTHS] ;
char years[ NUMYEARS] [ 4 ] = { "2011" , "2012" , "2013" , "2014" , "2015" } ;
char months[ NUMMONTHS] [ 10 ] = { "Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov" , "Dec" } ;
float sumofRainfall[ NUMYEARS] ;
int main ( )
{
char enterData = 'y' ;
printf ( "Do you want to input Precipatation data? (y for yes)\n " ) ; if ( enterData == 'y' ) {
// Call Function to Input data
inputdata( ) ;
// Call Function to display data
printdata( ) ;
}
else {
printf ( "No data was input at this time\n " ) ; }
printf ( "Please try the Precipitation program again. \n " ) ; return 0 ;
}
// function to inputdata
void inputdata( ) {
/* variable definition: */
float Rain= 1.0 ;
// Input Data
for ( int year= 0 ; year < NUMYEARS; year++ ) {
sumofRainfall[ year] = 0.0 ;
for ( int month= 0 ; month< NUMMONTHS; month++ ) {
printf ( "Enter rain for %d, %d:\n " , year
+ 1 , month
+ 1 ) ; Raindata[ year] [ month] = Rain;
sumofRainfall[ year] += Rain; // add rain to sum
}
}
}
// Function to printdata
void printdata( ) {
// Print data
printf ( "year\t month\t rain\n " ) ; for ( int year= 0 ; year < NUMYEARS; year++ ) {
for ( int month= 0 ; month< NUMMONTHS; month++ ) {
printf ( "%s\t %s\t %5.2f\n " , years
[ year
] , months
[ month
] , Raindata
[ year
] [ month
] ) ; }
// print sum of rainfall for each year
printf ( "The total Rainfall for the year was: %5.2f\n " , sumofRainfall
[ year
] ) ; }
}
Ly8gQyBjb2RlCi8vIFRoaXMgcHJvZ3JhbSB3aWxsIGlucHV0IGFuZCBzdG9yZSBtZXRlb3JvbG9naWNhbCBkYXRhIGludG8gYW4gYXJyYXkuIAovLyBEZXZlbG9wZXI6IFZpbmNlbnQgUGVyZXogQ01JUzEwMgovLyBEYXRlOiBNYXIgMjYsIDIwMTcKI2RlZmluZSBOVU1NT05USFMgNgojZGVmaW5lIE5VTVlFQVJTIDIKI2luY2x1ZGUgPHN0ZGlvLmg+CiAgICAvLyBmdW5jdGlvbiBwcm90b3R5cGVzCiAgICB2b2lkIGlucHV0ZGF0YSgpOwogICAgdm9pZCBwcmludGRhdGEoKTsKICAgIC8vIEdsb2JhbCB2YXJpYWJsZXMKICAgIC8vIFRoZXNlIGFyZSBhdmFpbGFibGUgdG8gYWxsIGZ1bmN0aW9ucwogICAgZmxvYXQgUmFpbmRhdGFbTlVNWUVBUlNdW05VTU1PTlRIU107CgljaGFyIHllYXJzW05VTVlFQVJTXVs0XSA9IHsiMjAxMSIsIjIwMTIiLCIyMDEzIiwiMjAxNCIsIjIwMTUifTsKICAgIGNoYXIgbW9udGhzW05VTU1PTlRIU11bMTBdID17IkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJ9OwogICAgZmxvYXQgc3Vtb2ZSYWluZmFsbFtOVU1ZRUFSU107CiAgICBpbnQgbWFpbiAoKQogICAgewogICAgICBjaGFyIGVudGVyRGF0YSA9ICd5JzsKICAgICAgcHJpbnRmKCJEbyB5b3Ugd2FudCB0byBpbnB1dCBQcmVjaXBhdGF0aW9uIGRhdGE/ICh5IGZvciB5ZXMpXG4iKTsKICAgICAgc2NhbmYoIiVjIiwmZW50ZXJEYXRhKTsKICAgICAgaWYgKGVudGVyRGF0YSA9PSAneScpIHsKICAgICAgICAvLyBDYWxsIEZ1bmN0aW9uIHRvIElucHV0IGRhdGEKICAgICAgICBpbnB1dGRhdGEoKTsgIAogICAgICAgICAvLyBDYWxsIEZ1bmN0aW9uIHRvIGRpc3BsYXkgZGF0YQogICAgICAgICBwcmludGRhdGEoKTsKICAgICAgIH0KICAgICAgIGVsc2UgewogICAgICAgICBwcmludGYoIk5vIGRhdGEgd2FzIGlucHV0IGF0IHRoaXMgdGltZVxuIik7CiAgICAgICB9CiAgICAgICBwcmludGYoIlBsZWFzZSB0cnkgdGhlIFByZWNpcGl0YXRpb24gcHJvZ3JhbSBhZ2Fpbi4gXG4iKTsKICAgICAgIHJldHVybiAwOwogICAgfQogICAgLy8gZnVuY3Rpb24gdG8gaW5wdXRkYXRhCiAgICB2b2lkIGlucHV0ZGF0YSgpIHsKICAgICAgLyogdmFyaWFibGUgZGVmaW5pdGlvbjogKi8KICAgICAgZmxvYXQgUmFpbj0xLjA7ICAKICAgICAgIC8vIElucHV0IERhdGEKICAgICAgIGZvciAoaW50IHllYXI9MDt5ZWFyIDwgTlVNWUVBUlM7IHllYXIrKykgewogICAgICAgCXN1bW9mUmFpbmZhbGxbeWVhcl0gPSAwLjA7CiAgICAgICAgICBmb3IgKGludCBtb250aD0wOyBtb250aDwgTlVNTU9OVEhTOyBtb250aCsrKSB7CiAgICAgICAgICAgICAgcHJpbnRmKCJFbnRlciByYWluIGZvciAlZCwgJWQ6XG4iLCB5ZWFyKzEsIG1vbnRoKzEpOwogICAgICAgICAgICAgIHNjYW5mKCIlZiIsJlJhaW4pOwogICAgICAgICAgICAgIFJhaW5kYXRhW3llYXJdW21vbnRoXT1SYWluOwogICAgICAgICAgICAgIHN1bW9mUmFpbmZhbGxbeWVhcl0gKz0gUmFpbjsgLy8gYWRkIHJhaW4gdG8gc3VtCiAgICAgICAgICB9CiAgICAgICB9CiAgICB9CiAgICAvLyBGdW5jdGlvbiB0byBwcmludGRhdGEKICAgIHZvaWQgcHJpbnRkYXRhKCl7CiAgICAvLyBQcmludCBkYXRhCiAgICAgICBwcmludGYgKCJ5ZWFyXHQgbW9udGhcdCByYWluXG4iKTsKICAgICAgIGZvciAoaW50IHllYXI9MDt5ZWFyIDwgTlVNWUVBUlM7IHllYXIrKykgewogICAgICAgICAgZm9yIChpbnQgbW9udGg9MDsgbW9udGg8IE5VTU1PTlRIUzsgbW9udGgrKykgewogICAgICAgICAgICAgIHByaW50ZigiJXNcdCAlc1x0ICU1LjJmXG4iLCB5ZWFyc1t5ZWFyXSxtb250aHNbbW9udGhdLFJhaW5kYXRhW3llYXJdW21vbnRoXSk7ICAgICAgICAgCiAgICAgICAgICB9ICAgICAgCiAgICAgICAgICAvLyBwcmludCBzdW0gb2YgcmFpbmZhbGwgZm9yIGVhY2ggeWVhcgogICAgICAgICAgcHJpbnRmKCJUaGUgdG90YWwgUmFpbmZhbGwgZm9yIHRoZSB5ZWFyIHdhczogJTUuMmZcbiIsIHN1bW9mUmFpbmZhbGxbeWVhcl0pOwogICAgICAgfQogICAgfQ==
stdout
Do you want to input Precipatation data? (y for yes)
Enter rain for 1, 1:
Enter rain for 1, 2:
Enter rain for 1, 3:
Enter rain for 1, 4:
Enter rain for 1, 5:
Enter rain for 1, 6:
Enter rain for 2, 1:
Enter rain for 2, 2:
Enter rain for 2, 3:
Enter rain for 2, 4:
Enter rain for 2, 5:
Enter rain for 2, 6:
year month rain
20112012 Jan 15.50
20112012 Feb 16.30
20112012 Mar 14.40
20112012 Apr 15.70
20112012 May 7.50
20112012 Jun 20.00
The total Rainfall for the year was: 89.40
2012 Jan 14.50
2012 Feb 6.40
2012 Mar 6.50
2012 Apr 8.80
2012 May 4.90
2012 Jun 2.60
The total Rainfall for the year was: 43.70
Please try the Precipitation program again.