欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第 10 章 数组和指针

程序员文章站 2022-09-25 17:28:40
1 /* 2 array2d.c -- 处理二维数组的函数 3 */ 4 5 #include 6 #define ROWS 3 7 #define COLS 4 8 9 void sum_rows(int ar[][COLS], int rows); 10 void sum_c ......
第 10 章 数组和指针
 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\n", 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\n", 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\n", 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 }
array2d.c

第 10 章 数组和指针