Array calculations using pointers instead of subscripts. - C Pointer

C examples for Pointer:Array Pointer

Description

Array calculations using pointers instead of subscripts.

Demo Code

#include <stdio.h>  

#define MONTHS 12    // number of months in a year  
#define YRS   5      // number of years of data  

int main(void)  {  
    const float rain[YRS][MONTHS] = {  
        {1.3,2.3,4.3,3.5,2.4,1.2,3.2,7.2,7.4,2.4,3.5,6.6},
        {8.5,8.3,4.2,1.6,2.4,3.3,5.2,6.9,8.3,2.9,1.4,7.3},
        {9.1,8.5,6.5,4.3,2.1,4.8,0.2,5.2,1.1,2.3,6.1,8.4},
        {7.2,9.9,8.4,6.3,1.2,4.8,0.4,4.1,8.6,1.7,4.3,6.2},
    {8.5,8.3,4.2,1.6,2.4,3.3,5.2,6.9,8.3,2.9,1.4,7.3}
    };  /* www.j a v a  2  s .  c o  m*/
    int year, month;  
    float subtot, total;  
      
    printf(" YEAR    RAINFALL  (inches)\n");  
    for (year = 0, total = 0; year < YRS; year++)  
    {             /* for each year, sum rainfall for each month */  
        for (month = 0, subtot = 0; month < MONTHS; month++)  
            subtot += *(*(rain + year) + month);  
        printf("%5d %15.1f\n", 2010 + year, subtot);  
        total += subtot;                  /* total for all years */  
    }  
    printf("\nThe yearly average is %.1f inches.\n\n", total/YRS);  
    printf(" Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct Nov  Dec\n");  
      
    for (month = 0; month < MONTHS; month++)  
    {
        for (year = 0, subtot =0; year < YRS; year++)  
            subtot += *(*(rain + year) + month);  
        printf("%4.1f ", subtot/YRS);  
    }  
    printf("\n");  
    return 0;  
}

Related Tutorials