1 /*--------------------------------- 2 array2d.c -- 处理二维数组的函数 3 ---------------------------------*/ 4 5 #include <stdio.h> 6 #define ROWS 3 7 #define COLS 4 8 9 void sum_rows(int ar[][COLS], int rows); 10 void sum_cols(int [][COLS], int); 11 int sum2d(int (*ar)[COLS], int rows); 12 13 int main() 14 { 15 int junk[ROWS][COLS] = 16 { 17 {2, 4, 6, 8}, 18 {3, 5, 7, 9}, 19 {12, 10, 8, 6} 20 }; 21 22 sum_rows(junk, ROWS); 23 sum_cols(junk, ROWS); 24 printf("Sum of all elements = %d ", sum2d(junk, ROWS)); 25 26 return 0; 27 } 28 29 void sum_rows(int ar[][COLS], int rows) 30 { 31 for (int r(0); r != rows; ++r) 32 { 33 int total(0); 34 for (int c(0); c != COLS; ++c) 35 total += ar[r][c]; 36 printf("row %d: sum = %d ", r, total); 37 } 38 } 39 40 void sum_cols(int ar[][COLS], int rows) 41 { 42 for (int c(0); c != COLS; ++c) 43 { 44 int total(0); 45 for (int r(0); r != rows; ++r) 46 total += ar[r][c]; 47 printf("col %d: sum = %d ", c, total); 48 } 49 } 50 51 int sum2d(int ar[][COLS], int rows) 52 { 53 int total(0); 54 55 for(int r(0); r != rows; ++r) 56 for(int c(0); c != COLS; ++c) 57 total += ar[r][c]; 58 59 return total; 60 }