12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // array2d.c -- functions for 2d arrays
- #include <stdio.h>
- #define ROWS 3
- #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,10,8,6}
- };
-
- 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;
- }
|