三、二维数组
二维数组以上为多维数组
1.二维数组的创建
数组类型 数组名[行数][列数];
例如想声明一个3行4列的整型数组
int arr[3][4];
2.二维数组的初始化
1.不完全初始化
给这个数组其中几个元素初始化其他的为以数据类型的原始值为准
例如:
int arr[3][4]={1,2,3,4};
结果为
1 2 3 4
0 0 0 0
0 0 0 0
int arr[2][3]={1};
结果为
1 0 0
0 0 0
2.完全初始化
把数组中所有的元素赋值
例如:
int arr[3][2]={1,1,2,2,3,3};
结果为
1 1
2 2
3 3
3.按照行初始化
1.不省略
数组类型 数组名[行][列]={{第一行的数据},{第二行数据},{第n行数据}…}
举个例子:
#include<stdio.h>
int main()
{
int arr[3][4] = { {2,4,6},{1,9,4,1},{6,3,7} };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
结果为
2 4 6 0
1 9 4 1
6 3 7 0
2.省略(只能省略行,不能省略列)
数组类型 数组名[ ][列]={{第一行的数据},{第二行数据},{第n行数据}…}
举个例子:
#include<stdio.h>
int main()
{
int arr[ ][4] = { {2,4,6},{1,9,4,1},{6,3,7} };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
此时自动赋值了三行,因为有三个{}
四、数组的输入
我们可以用scanf语句对数组进行输入
#include<stdio.h>
int main()
{
int arr[][4] = { {2,4,6},{1,9,4,1},{6,3,7} };
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
scanf_s("%d ", &arr[i][j]);
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}