您的位置:首页 > 其它

C5_二维数组

2015-07-11 11:24 302 查看
// 各种数组

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");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c