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("-------打印行的和与列的和-----------\n");
58 for(i = 0;i<K;i++)
59 {
60 for(j = 0;j<n;j++)
61 {
62 printf("%d\t",*(*(p+i)+j));
63 }
64 putchar(10);
65
66 }
67 return ;
68 }