/*
Calculations on multidimensional arrays.
*/
#include <stdio.h>
/* Array initialization : */
char *season[]=
{
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
};
short units[12]=
{
{672},{609},{715},{803},{810},{831},
{829},{727},{780},{703},{791},{783}
};
double revenu[12]=
{
{3.4},{3.2},{3.7},{4.2},{4.8},{5.1},
{5.1},{5.1},{4.3},{3.9},{4.2},{3.6}
};
main()
{
/* Define auxiliary arrays : */
short icol[3], imean[3];
double col[3], mean[3];
/* Declaration statements */
short row, column, igrand, itotal, i,j, iave, igave;
double grand, total, ave, gave;
char *TEMP;
printf("C72.C -> Calculations on multidimensional arrays\n\n");
printf(" Seasonal Summary\n");
/*
Do 4 quarter average + totals
*/
igrand = 0;
grand = 0.0;
for (i = 1; i <= 4; i=i++)
{
itotal = 0;
total = 0.0;
for(j=3*i-2 ; j <= 3*i; j++)
{
itotal += units[j - 1];
total += revenu[j - 1];
} /* End of inner for{} loop */
igrand += itotal;
grand += total;
iave = itotal / 3;
ave = total / 3.0;
for(j=3*i-2 ; j <= 3*i; j++)
printf("%5c%s", ' ', season[j - 1]);
printf("%3ctotal%5cave\n", ' ', ' ');
for(j=3*i-2 ; j <= 3*i; j++)
printf("%8d", units[j - 1]);
printf("%8d%8d\n", itotal, iave);
printf("%2c", ' ');
for(j=3*i-2 ; j <= 3*i; j++)
printf("%6.1fM$", revenu[j - 1]);
printf("%6.1fM$%6.1fM$\n\n", total, ave);
} /* End of outer for{} loop */
/* Do same calculations for each column */
for (i = 1; i <= 3; i++)
{
icol[i - 1] = 0;
col[i - 1] = 0.0;
for(j=i ; j <= 12; j=j+3)
{
icol[i - 1] += units[j - 1];
col[i - 1] += revenu[j - 1];
} /* End of inner for{} loop */
imean[i - 1] = icol[i - 1] / 4;
mean[i - 1] = col[i - 1] / 4.0;
} /* End of outer for{} loop */
igave = igrand / 12;
gave = grand / 12.0;
/* Output column statistics */
putchar('\n');
for (j = 1; j <= 50; j++) putchar('-');
printf("\n%8d%8d%8d%8d%8d\n", icol[0], icol[1], icol[2], igrand,
igave);
printf("%2c%6.1fM$%6.1fM$%6.1fM$%6.1fM$%6.1fM$\n\n",
' ', col[0], col[1], col[2], grand, gave);
printf("%8d%8d%8d%4ccolumn average\n", imean[0], imean[1], imean[2],
' ');
printf("%2c%6.1fM$%6.1fM$%6.1fM$\n\n", ' ', mean[0], mean[1],
mean[2]);
for (j = 1; j <= 50; j++) putchar('=');
printf("\n");
return(0);
}
/* End of Program C72 */
/*
OUTPUT :
C72.C -> Calculations on multidimensional arrays
Seasonal Summary
Jan Feb Mar total ave
672 609 715 1996 665
3.4M$ 3.2M$ 3.7M$ 10.3M$ 3.4M$
Apr May Jun total ave
803 810 831 2444 814
4.2M$ 4.8M$ 5.1M$ 14.1M$ 4.7M$
Jul Aug Sep total ave
829 727 780 2336 778
5.1M$ 5.1M$ 4.3M$ 14.5M$ 4.8M$
Oct Nov Dec total ave
703 791 783 2277 759
3.9M$ 4.2M$ 3.6M$ 11.7M$ 3.9M$
--------------------------------------------------
3007 2937 3109 9053 754
16.6M$ 17.3M$ 16.7M$ 50.6M$ 4.2M$
751 734 777 column average
4.1M$ 4.3M$ 4.2M$
==================================================
*/
Last modified: 22/07/97