二维数组的遍历是考试中的重点和难点之一,尤其是蛇形填数尤为重要,下面我们来讨论一下二维数组的遍历。
一、二维数组的正向遍历
1、正向行遍历
代码框架:外循环跑行,内循环跑列
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",++sum);
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(i=0;i<row;i++) for(j=0;j<col;j++) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
2、正向列遍历
代码框架:外循环跑列,内循环跑行
for(j=0;j<col;j++)
for(i=0;i<row,i++)
a[i][j]=++sum;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(j=0;j<col;j++) for(i=0;i<row;i++) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
二、二维数组的反向遍历
1、反向行遍历
(1)第一种:
代码框架:外循环跑行,内循环跑列
for(i=0;i<row;i++)
for(j=col-1;j>=0;j--)
a[i][j]=++sum;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(i=0;i<row;i++) for(j=col-1;j>=0;j--) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
(2)第二种:
代码框架:外循环跑行,内循环跑列
for(i=row-1;i>=0;i--)
for(j=col-1;j>=0;j--)
a[i][j]=++sum;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(i=row-1;i>=0;i--) for(j=col-1;j>=0;j--) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
2、反向列遍历
(1)第一种:
代码框架:外循环跑列,内循环跑行
for(j=col-1; j>=0;j--)
for(i=0;i<row;i++)
a[i][j]=++sum;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(j=col-1; j>=0;j--) for(i=0;i<row;i++) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
(2)第二种:
代码框架:外循环跑列,内循环跑行
for(j=col-1;j>=0;j--)
for(i=row-1;i>=0;i--)
a[i][j]=++sum;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <stdio.h> #define N 10 int a[N][N]; int main() { int i,j,row,col,sum=0; scanf("%d%d",&row,&col); for(j=col-1;j>=0;j--) for(i=row-1;i>=0;i--) a[i][j]=++sum; for(i=0;i<row;i++) { for(j=0;j<col;j++) { printf("%3d",a[i][j]); } printf("n"); } return 0; }
最后
以上就是怕孤单乌冬面最近收集整理的关于二维数组的遍历方法的全部内容,更多相关二维数组内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复