目录
1、二维数组的定义
定义方式:(声明时列数不能省略,行数可以)
数据类型 数组名[常量表达式][常量表达式];
例 int a[3][4];
float b[2][5];
int c[2][3][4];
数组元素的存放顺序
原因:内存是一维的
二维数组:按行序优先
2、二维数组的理解
3、二维数组元素的引用
形式:数组名[下标][下标]
二维数组元素的初始化:
-分行初始化
-按元素排列顺序初始化
1、全部初始化
2、部分初始化
3、第一维长度省略初始化
4、多维数组
具有两个或两个以上下标的数组称为多维数组
5、案例
1、杨辉三角
打印杨辉三角的前十行
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
....
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[10][10]={{0}};
int i,j;
for(i=0;i<10;i++)
{
a[i][0]=1;
for(j=1;j<=i;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
return 0;
}
运行结果
2、求最大值
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
#include <stdio.h>
int main(int argc, char *argv[])
{
int a[3][4]={{2,4,1,4},{5,7,8,11},{2,3,4,13}};
int i,j,row=0,col=0;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
if(a[row][col]<a[i][j])
{
row=i;
col=j;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
printf("%-4d",a[i][j]);
}
printf("\n");
}
printf("max=%d %d %d\n",a[row][col],row,col);
return 0;
}
运行结果
以上均为学习笔记,仅供参考,如有出错,欢迎指正!