/* Functions to find the average of parts of an array. */ #include <stdio.h> typedef char char_array[12][4]; /* Variable Type Declaration */ typedef short int_array[12]; typedef double real_array[12]; char_array month; /* Declaration Statements */ int_array units; real_array sales; short k, start, meanu, j; double save; void average(n, start, units, sales, iave, ave) short n, start; short *units; /* Procedure Declaration */ double *sales; short *iave; double *ave; { short cars, k, j; double dollars; cars = 0; dollars = 0.0; j = start + n - 1; for (k = start - 1; k < j; k++) { cars += units[k]; /* To compute the sum */ dollars += sales[k]; } /* End of for{} loop */ *iave = cars / n; /* To compute the average */ *ave = dollars / n; } /* End of average procedure */ main() { /* Declaration Statement */ char *TEMP; clrscr(); printf("C67.C -> Average Program 2 (again using a function)\n\n"); /* Assignment Statements */ for (k = 1; k <= 12; k++) { printf("Month (Jan,Feb,...) : "); scanf("%s",month[k-1]); /* Read from keyboard entry */ printf("Units Sold : "); scanf("%hd", &units[k - 1]); printf("Sales (in million $): "); scanf("%lg", &sales[k - 1]); } for (k=1;k<=12; k++) printf(" %s%7d%6.1f\n", month[k - 1], units[k - 1], sales[k - 1]); /* Data has been read, stored and printed. Now use procedure once for each quarter. */ for (j = 1; j <= 4; j++) { start = (j - 1) * 3 + 1; average(3,start,units,sales,&meanu,&save); /* Call of procedure */ printf("\nmean%7d%6.1f quarter #%d\n", meanu, save, j); } /* End of for{} loop */ return(0); } /* End of main Program C67 */ /*INPUT :
Jan 5 12 Feb 4 78 Mar 1 3 Apr 5 32 May 6 12 June 5 32 July 1 12 Aug 34 12 Sep 4 10 Oct 5 23 Nov 1 23 Dec 0 0OUTPUT :
C67.C -> Average Program 2 (again using a function) Month (Jan,Feb,...) : Jan Units Sold : 5 Sales (in million $): 12 Month (Jan,Feb,...) : Feb Units Sold : 4 Sales (in million $): 78 Month (Jan,Feb,...) : Mar Units Sold : 1 Sales (in million $): 3 Month (Jan,Feb,...) : Apr Units Sold : 5 Sales (in million $): 32 Month (Jan,Feb,...) : May Units Sold : 6 Sales (in million $): 12 Month (Jan,Feb,...) : June Units Sold : 5 Sales (in million $): 32 Month (Jan,Feb,...) : July Units Sold : 1 Sales (in million $): 12 Month (Jan,Feb,...) : Aug Units Sold : 34 Sales (in million $): 12 Month (Jan,Feb,...) : Sep Units Sold : 4 Sales (in million $): 10 Month (Jan,Feb,...) : Oct Units Sold : 5 Sales (in million $): 23 Month (Jan,Feb,...) : Nov Units Sold : 1 Sales (in million $): 23 Month (Jan,Feb,...) : Dec Units Sold : 0 Sales (in million $): 0 Jan 5 12.0 Feb 4 78.0 Mar 1 3.0 Apr 5 32.0 May 6 12.0 June 5 32.0 July 1 12.0 Aug 34 12.0 Sep 4 10.0 Oct 5 23.0 Nov 1 23.0 Dec 0 0.0 mean 3 31.0 quarter #1 mean 5 25.3 quarter #2 mean 13 11.3 quarter #3 mean 2 15.3 quarter #4 */
Last modified: 22/07/97