// 各种数组
int arr[] = {1, 2, 3, 4, 5};
char stuName[20] = "wangermazi";
int arr[5] = {0};
int a = 10;
int arr1[a]; // 如果数组位数用变量定义,其后不能设定初值
// 定义一个三行四列的二维数组
int arr[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
// 打印第三行第二个数
printf("%d\n",arr[2][1]);
arr[2][1] = 20; // 直接进行赋值
// 遍历二维数组
printf("%d\n",arr[2][1]);
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d\n",arr[i][j]);
}
printf ("\n");
}
// 定义一个三行四列数组,对数组进行随机数赋值,范围30-70
int arr[3][4] = {0};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = arc4random() % (70 - 30 + 1) + 30;
printf("arr[%d][%d] = %d ",i,j,arr[i][j]);
}
printf("\n");
}
// 找出最大值和最大值所对应的下表
int max = 0, maxIndexX = 0, maxIndexY = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
arr[i][j] = arc4random() % (70 - 30 + 1) + 30;
}
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j ++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxIndexY = j;
maxIndexX = i;
}
}
}
printf("最大值arr[%d][%d]为%d\n",maxIndexX,maxIndexY,max);
// 练习. 交换数组的行列
int a[3][4] = {1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11, 12};
int aNew[4][3] = {0};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
aNew[i][j] = a[j][i];
printf("aNew[%d][%d] = %d ",j,i,aNew[i][j]);
}
printf("\n");
}
// 用一个一维数组,打印出二维数组的样式
int arr[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ",arr[j + i * 3]);
}
printf("\n");
}
// 练习. arr[12] 取值范围30 - 40,打印成三行四列
int arr[12] = {0};
for (int i = 0; i < 12; i++) {
arr[i] = arc4random() % (70 - 30 + 1) + 30;
}
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ",arr[j + i * 4]);
}
printf("\n");
}
定义二维数组时,可以省略行数,但不能省略列数
// 字符串数组
// 第一个[]表示字符串个数
// 第二个[]表示每个字符串的最大长度
char strings[3][10] = {"iPhone","Android","Win8"};
printf("%s\n",strings[2]);
for (int i = 0; i < 3; i++) {
printf("%s ",strings[i]);
}
// 字符串和一维数组不能直接用等号赋值!!!
strcpy(strings[1], "Flyme");
printf("%s\n",strings[1]);
// 多维数组:多一个维度相当于一个容器
int arr[2][2][3] = {1, 2, 3, 4, 5, 7, 6, 8, 9, 10, 11, 12};
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
for (int k = 0; k < 3; k++) {
printf ("%2d ",arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}