1 //打印二维数组矩阵的主对角线与次对角线
2 #include <stdio.h>
3
4 int main(void)
5 {
6 int arr[5][5] = {1, 2, 3, 4, 5,
7 6, 7, 8, 9, 10,
8 11,12, 13,14, 15,
9 16,17, 18,19, 20,
10 21,22, 23,24, 25};
11 int i,j;
12 #if 0
13 for(i=0;i<5;i++)
14 {
15 for(j=0;j<5;j++)
16 {
17 printf("%d%d ",i,j);
18 }
19 putchar(10);
20 }
21 putchar(10);
22
23 #endif
24
25 #if 0 //方法1,按数据在内存中存储的顺序进行基本遍历,进行筛选打印。
26 //打印主对角线
27 for(i=0;i<5;i++)
28 {
29 for(j=0;j<5;j++)
30 {
31 if(i==j)
32 printf("%d%d ",i,j);
33 }
34 putchar(10);
35 }
36 putchar(10);
37 //打印次对角线
38 for(i=0;i<5;i++)
39 {
40 for(j=0;j<5;j++)
41 {
42 if(i+j==4)
43 printf("%d%d ",i,j);
44 }
45 putchar(10);
46 }
47 putchar(10);
48
49 #endif
50
51 #if 0 //方法2 直接仅遍历两条对角线,高效。
52 //打印主对角线
53 for(i = 0;i<5;i++)
54 {
55 printf("%d ",arr[i][i]);
56 }
57 putchar(10);
58 //打印次对角线
59 for(i = 0;i<5;i++)
60 {
61 printf("%d ",arr[i][5-1-i]);
62 }
63 putchar(10);
64
65 #endif
66
67 return 0;
68 }