打印

3维数组

[复制链接]
2221|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanglli|  楼主 | 2021-7-30 19:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁熟悉C中3维数组如何定义与应用

使用特权

评论回复
沙发
stly| | 2021-7-30 20:01 | 只看该作者

uchar array[2][2][2]=
{
          {
                  {1,1},
                  {2,2}
          },
          {
                  {3,3},
                  {4,4}
          }
};

使用特权

评论回复
板凳
xxmmi| | 2021-7-30 20:03 | 只看该作者
不能为零,否则会编译报错

使用特权

评论回复
地板
zhanglli|  楼主 | 2021-7-30 20:05 | 只看该作者
那我要引用里面的数据,怎么办呢?

使用特权

评论回复
5
zhanglli|  楼主 | 2021-7-30 20:07 | 只看该作者

array[1][0][0] 是否就是 3呢?
array[0][1][1]是否就是2呢
谢谢!

使用特权

评论回复
6
zhanglli|  楼主 | 2021-7-30 20:08 | 只看该作者

比如说我定义三维数组:
const unsigned char trLineScaleWhenUpAdjust【9】【3】【3】=
{
          {{17,16,14},        {17,16,14},        {17,16,14}},                {{18,12,7},        {18,12,7},        {18,12,7}},                        {{22,25,16},        {22,25,16},        {22,25,16}},        
          {{12,0,3},        {12,0,3},                        {12,0,3}},               
        {{12,0,3},        {12,0,3},                        {12,0,3}},               
        {{13,0,5},        {13,0,5},                        {13,0,5}},               
        {{20,13,9},        {20,13,9},        {20,13,9}},                        {{23,16,12},        {23,16,12},        {230,16,12}},        
          {{29,21,12},        {29,21,12},        {29,21,12}}               
};
     我要引用 230时,该怎么引用这个值呢,谢谢!

使用特权

评论回复
7
jiajs| | 2021-7-30 20:12 | 只看该作者
先把表格规范一下才行,你那个表我看没有人能知道

一般不推荐使用多维数组<特别是>=3维的数组>,任何高手都会很头痛的

一般一维,二维就可以了

const unsigned char trLineScaleWhenUpAdjust [9][3][3]=
{
//--------------------------------------------------------------
//           0                  1                  2
      {{17,16,14}, {17,16,14}, {17,16,14}},    // 0
      {{18,12,7},   {18,12,7},  {18,12,7}},       // 1
      {{22,25,16}, {22,25,16}, {22,25,16}},    // 2
      {{12,0,3},     {12,0,3},   {12,0,3}},          // 3
      {{12,0,3},     {12,0,3},   {12,0,3}},          // 4
      {{13,0,5},     {13,0,5},   {13,0,5}},          // 5
      {{20,13,9},   {20,13,9},  {20,13,9}},       // 6
      {{23,16,12}, {23,16,12}, {230,16,12}},  // 7
      {{29,21,12}, {29,21,12}, {29,21,12}}     // 8
};

那么
trLineScaleWhenUpAdjust[7][2][0] = 230

使用特权

评论回复
8
chuxh| | 2021-7-30 20:15 | 只看该作者
trLineScaleWhenUpAdjust[7][2][0]

使用特权

评论回复
9
xxrs| | 2021-7-30 20:17 | 只看该作者
多维数组就是 一维数组的一维数组

使用特权

评论回复
10
supernan| | 2021-7-30 20:18 | 只看该作者

循环三维数组赋值法

main()
{
int x[3][3][3]={0} , i=0,j=0,k=0,val=0;
for(i=0;i<3;i++)
      for(j=0;j<3;j++)
         for(k=0;k<3;k++)
          x[j][k]=val++;
printf("val=%d\n",val);
printf("last=%d\n",x[2][2][2]);
printf("i=%d,j=%d,k=%d",i,j,k);
getch();
}

使用特权

评论回复
11
wyjie| | 2021-7-30 20:19 | 只看该作者

val=27
last=26,i=3,j=3,k=3
更多操作

使用特权

评论回复
12
houcs| | 2021-7-30 20:22 | 只看该作者
像这样的三维数组在应用中很少见呢!!!

使用特权

评论回复
13
zhanglli|  楼主 | 2021-7-30 20:24 | 只看该作者
搞定了,呵呵,犯了低级错误……多谢各位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1016

主题

9386

帖子

1

粉丝