#define N 10int a[N][N];int main(){ int i,j,row..._二维数组遍历">
赞
踩
二维数组的遍历是考试中的重点和难点之一,尤其是蛇形填数尤为重要,下面我们来讨论一下二维数组的遍历。
一、二维数组的正向遍历
1、正向行遍历
代码框架:外循环跑行,内循环跑列
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",++sum);
- #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;
- #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;
- #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;
- #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;
- #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;
- #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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。