Functions for 2d arrays with pointer - C Pointer

C examples for Pointer:Array Pointer

Description

Functions for 2d arrays with pointer

Demo Code

#include <stdio.h>
#define ROWS 3/* w w w .  j  av a  2  s  .com*/
#define COLS 4

void sum_rows(int ar[][COLS], int rows);
void sum_cols(int [][COLS], int );    // ok to omit names
int sum2d(int (*ar)[COLS], int rows); // another syntax

int main(void){
    int junk[ROWS][COLS] = {
        {2,4,6,8},
        {3,5,7,9},
        {12,14,16,18}
    };
    
    sum_rows(junk, ROWS);
    sum_cols(junk, ROWS);
    
    printf("Sum of all elements = %d\n", sum2d(junk, ROWS));
    
    return 0;
}

void sum_rows(int ar[][COLS], int rows)
{
    int r;
    int c;
    int tot;
    
    for (r = 0; r < rows; r++)
    {
        tot = 0;
        for (c = 0; c < COLS; c++)
            tot += ar[r][c];
        printf("row %d: sum = %d\n", r, tot);
    }
}

void sum_cols(int ar[][COLS], int rows)
{
    int r;
    int c;
    int tot;
    
    for (c = 0; c < COLS; c++)
    {
        tot = 0;
        for (r = 0; r < rows; r++)
            tot += ar[r][c];
        printf("col %d: sum = %d\n", c, tot);
    }
}

int sum2d(int ar[][COLS], int rows)
{
    int r;
    int c;
    int tot = 0;
    
    for (r = 0; r < rows; r++)
        for (c = 0; c < COLS; c++)
            tot += ar[r][c];
    
    return tot;
}

Result


Related Tutorials