数组遍历
Table of Contents
数组遍历, 取一个数组的任意段
int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (int i = 0; i <= 9; i++) { for (int j = i; j <= 9; j++) { for (int k = i; k <= j; k++) { printf("%d ", a[k]); } printf("\n"); } }
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8 9
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
2
2 3
2 3 4
2 3 4 5
2 3 4 5 6
2 3 4 5 6 7
2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
3
3 4
3 4 5
3 4 5 6
3 4 5 6 7
3 4 5 6 7 8
3 4 5 6 7 8 9
4
4 5
4 5 6
4 5 6 7
4 5 6 7 8
4 5 6 7 8 9
5
5 6
5 6 7
5 6 7 8
5 6 7 8 9
6
6 7
6 7 8
6 7 8 9
7
7 8
7 8 9
8
8 9
9
数组遍历, 取一个数组的任意段, 可以形成环
int a[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (int i = 0; i <= 9; i++) { for (int j = 0; j <= 9; j++) { for (int k = i; k <= j+i; k++) { printf("%d ", a[k]); } printf("\n"); } }
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 7 8 9
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 0
2
2 3
2 3 4
2 3 4 5
2 3 4 5 6
2 3 4 5 6 7
2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 0
2 3 4 5 6 7 8 9 0 1
3
3 4
3 4 5
3 4 5 6
3 4 5 6 7
3 4 5 6 7 8
3 4 5 6 7 8 9
3 4 5 6 7 8 9 0
3 4 5 6 7 8 9 0 1
3 4 5 6 7 8 9 0 1 2
4
4 5
4 5 6
4 5 6 7
4 5 6 7 8
4 5 6 7 8 9
4 5 6 7 8 9 0
4 5 6 7 8 9 0 1
4 5 6 7 8 9 0 1 2
4 5 6 7 8 9 0 1 2 3
5
5 6
5 6 7
5 6 7 8
5 6 7 8 9
5 6 7 8 9 0
5 6 7 8 9 0 1
5 6 7 8 9 0 1 2
5 6 7 8 9 0 1 2 3
5 6 7 8 9 0 1 2 3 4
6
6 7
6 7 8
6 7 8 9
6 7 8 9 0
6 7 8 9 0 1
6 7 8 9 0 1 2
6 7 8 9 0 1 2 3
6 7 8 9 0 1 2 3 4
6 7 8 9 0 1 2 3 4 5
7
7 8
7 8 9
7 8 9 0
7 8 9 0 1
7 8 9 0 1 2
7 8 9 0 1 2 3
7 8 9 0 1 2 3 4
7 8 9 0 1 2 3 4 5
7 8 9 0 1 2 3 4 5 6
8
8 9
8 9 0
8 9 0 1
8 9 0 1 2
8 9 0 1 2 3
8 9 0 1 2 3 4
8 9 0 1 2 3 4 5
8 9 0 1 2 3 4 5 6
8 9 0 1 2 3 4 5 6 7
9
9 0
9 0 1
9 0 1 2
9 0 1 2 3
9 0 1 2 3 4
9 0 1 2 3 4 5
9 0 1 2 3 4 5 6
9 0 1 2 3 4 5 6 7
9 0 1 2 3 4 5 6 7 8
用到的地方
最大子数组的 3 次方解法
取石子问题
…