二维数组,行累加与列累加同时进行

 1 #include <stdio.h>
 2 /*
 3 编写程序:读取6X5的整数数组,然后显示出每行的和与每列的和
 4 例:enter row 1: 8 3  9 0 10
 5     enter row 2: 3 5 17 1  1
 6     enter row 3: 2 8  6 23 1
 7     enter row 4:15 7  3  2 9
 8     enter row 5: 6 14 2  6 0 
 9     enter row 6: 1 1  1  1 1
10     
11 */
12 
13 #define M 6
14 #define N 5
15 #define K 2
16 void get_row(int (*p)[N],int n);
17 void input_row_and_list_sum(int (*p)[N],int (*p1)[M],int n);
18 void input_row_sum(int (*p)[M],int n);
19 int main(void)
20 {
21     int arr[M][N];
22     int arr1[K][M] = {0};
23 //逐行的输入整数
24     get_row(arr,N);
25 //每行的和与每列的和存入arr1中
26     input_row_and_list_sum(arr,arr1,N);
27 //打印行的和与列的和
28     input_row_sum(arr1,M);
29 
30     return 0;
31 }
32 void get_row(int (*p)[N],int n)
33 {
34     for(int i = 0;i<M;i++)
35     {
36         printf("enter row%d:",i+1);
37         for(int j = 0;j<n;j++)
38             scanf("%d",*(p+i)+j);
39     }
40     return ;
41 }
42 
43 void input_row_and_list_sum(int (*p)[N],int (*p1)[M],int n)
44 {
45     for(int i = 0;i<M;i++)
46     {
47         for(int j = 0;j<n;j++)
48         {
49             p1[0][i] += *(*(p+i)+j);//行累计
50             p1[1][j] += *(*(p+i)+j);//列累计
51         }
52     }
53 }
54 void input_row_sum(int (*p)[M],int n)
55 {
56     int i,j;
57     printf("-------打印行的和与列的和-----------
");
58     for(i = 0;i<K;i++)
59     {
60         for(j = 0;j<n;j++)
61         {
62             printf("%d	",*(*(p+i)+j));
63         }
64         putchar(10);
65         
66     }
67     return ;
68 }
原文地址:https://www.cnblogs.com/wangchaomahan/p/9507835.html