二维数组
概念
元素为一维数组的数组(数组的数组)
定义
存储类型 数据类型 数组名[元素个数];
存储类型 数据类型 数组名[行数][列数];
行数:表示有几个一维数组
列数:一维数组中有几个元素
int a[2][3];//定义了一个二维数组,二维数组中有2个一维数组,每一个一维数组有3个int型的元素
初始化
部分初始化
int a[2][3] = {1,2,3};
全部初始化
int a[2][3] = {1,2,3,4,5,6};
int a[2][3] = {{1,2,3},{4,5,6}};
定义数组时行数可以省略,但是列数不能省略。
int a[ ][3] = {1,2,3,4};
int a[2][ ] = {1,2,3,4,5,6};//error
注意:二维数组的行数可以省略,但是列数不能省
访问
数组名[下标];
注意:下标从0开始
输入与输出
杨辉三角
分析如下:
//8*8杨辉三角
#include<stdio.h>
#define N 8
#define M 8
int main(void)
{
int a[N][M]={0};
int i = 0,j = 0,k = 0;
for(i = 0;i < N;i++)
{
for(j = 0;j <=i;j++)
{
if(i == j || 0 == i)
{
a[i][j] = 1;
}
else
{
a[i][j] = a[i-1][j]+a[i-1][j-1];
}
}
}
for(i = 0;i < N;i++)
{
for(j = 0;j <= i;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
return 0;
}