#include <stdio.h>
int test01()
{
int a2[2][10];//a2是一个二维数组,这个二维数组中包含两个一维数组,a2[0],a2[1],a2[0]和a2[1]两个数组是连续的
int index = 0;
int i, j;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 10; j++)
{
a2[i][j] = index++;
}
}//遍历一个二维数组,把数组中每个成员赋值
for (i = 0; i < 2; i++)
{
for (j = 0; j < 10; j++)
{
printf("%d\n", a2[i][j]);
}
}//遍历一个二维数组,把数组中每个成员赋值
printf("%lu, %lu, %lu\n", sizeof(a2), sizeof(a2[0]), sizeof(a2[0][0]));
//80 40 4
printf("%p, %p, %p\n", a2, a2[0], &a2[0][0]);
int a3[][5] = {
{
1, 2, 3, 4, 5 }, {
6, 7, 8, 9, 10 }};
for (i = 0; i < sizeof(a3) / sizeof(a3[0]); i++)
{
for (j = 0; j < sizeof(a3[0]) / sizeof(a3[0][0]); j++)
{
printf("a3[%d][%d] = %d\t", i, j, a3[i][j]);
}
printf("\n");
}
return 0;
}
int test02()
{
int a[2][4][5];//这是一个三维数组,有2个二维数组,2个二维数组的数组名是a[0],a[1]
int index = 0;
int i, j, k;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 5; k++)
{
a[i][j][k] = index++;
}
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 5; k++)
{
printf("a[%d][%d][%d] = %d ,", i, j,k, a[i][j][k]);
}
printf("\t");
}
printf("\n");
}
return 0;
}
//三维数组排序:将其先转换为一维数组,将一维数组排序,排序完成后再转换为三维数组
int main(int argc, const char *argv[])
{
printf("*********************************\n");
test01();
printf("*********************************\n");
printf("\n\n");
printf("*********************************\n");
test02();
printf("*********************************\n");
int a[2][3][5] = {
{
{
32,56,21,74,32},
{
56,31,897,93,22},
{
47,63,96,333,99} },
{
{
666,888,35,97,2},
{
654,87,13,67,3},
{
67,56,40,34,10} }
};
int b[30] = {
0 };
int i, j, k;
int index = 0;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
for (k = 0; k < 5; k++)
{
b[index] = a[i][j][k];
index++;
}
}
}
for (i = 0; i < 30; i++)
{
for (j = 1; j < 30 - i; j++)
{
if (b[j - 1] > b[j])
{
int tmp = b[j];
b[j] = b[j - 1];
b[j - 1] = tmp;
}
}
}
index = 0;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
for (k = 0; k < 5; k++)
{
a[i][j][k] = b[index];
index++;
}
}
}
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
for (k = 0; k < 5; k++)
{
printf("a[%d][%d][%d] = %d\n", i, j, k, a[i][j][k]);
}
}
}
return 0;
}
C实现三维数组排序
猜你喜欢
转载自blog.csdn.net/zxy131072/article/details/108494084
今日推荐
周排行