注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

阿英讲C语言三维数组和获取数组大小的实现  

2015-11-07 01:10:28|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
即以此功德,庄严佛净土。上报四重恩,下济三途苦。惟愿见闻者,悉发菩提心。在世富贵全,往生极乐国。
#include <stdio.h>
#include<stdlib.h>

#define MAX(x,y)  ((x)>(y) ? (x) : (y))
#define IS_EVEN(n)  ((n)%2==0)
#define TOUPPER(c)  ('a'<=(c) && (c)<='z' ? (c)-'a'+'A' : (c))
#define LENGTH1d(ary1d) (sizeof(b) / sizeof(b[0]))
#define circshiftleft(x, n, pattern) ((x<<n) & pattern)
#define circshiftright(x, n, pattern) ((x>>n) & pattern)
#define Random(x) (rand() % x) //通过取余取得指定范围[0, dis)之间的随机数{注意不包括dis}的随机数
/*rand()会产生一个介于0~RAND_MAX间的整数, RAND_MAX的大小可以在stdlib.h看到*/
#define row3d 4u
#define col3d 2u
#define page3d 3u

int main(int argc, char *argv[])
{
int b[12] = {0,1,2,3,4,5,6,7,8,9,10,11};
/* an array with 5 rows and 2 columns*/
   int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
   int i, j, k, xTemp;
int n1darraylength;
int nCol, nRow, nTotalNum, nPage;
int array3d[row3d][col3d][page3d];
printf("Max(7,4)=%d\t, IS_EVEN(n)=%d\t, TOUPPER(c) = %d\t\n\n", MAX(7, 4), IS_EVEN(13), TOUPPER('c'));
printf("length(b)= %d\n", LENGTH1d(b));
xTemp = 65535u;
printf("x=%d, circshiftleft(x, n, pattern)= %d\n",  xTemp, circshiftleft(xTemp, 2, 0xFFFF));
printf("x=%d, circshiftright(x, n, pattern)= %d\n",  xTemp, circshiftright(8888, 2, 0xFF)); // check out in MATLAB: bitand(2222, 255)

n1darraylength = sizeof(b) / sizeof(b[0]);
printf("sizeof(b) / sizeof(b[0]): %d\n", n1darraylength);

/*1d array output*/
  for ( k = 0; k < n1darraylength; k++ ) {
         printf("b[%d] = %d\n", k, b[k] );
      }

  /* 2d array output */
nTotalNum = sizeof(a)/sizeof(a[0][0]);
nRow = sizeof(a)/sizeof(a[0]);
nCol = nTotalNum/nRow;
printf("size(a) = [%d, %d]\n\n", nRow, nCol);

/* output each array element's value */
   for ( i = 0; i < 5; i++ ) {
      for ( j = 0; j < 2; j++ ) {
         printf("a[%d][%d] = %d\n", i,j, a[i][j] );
      }
   }
printf("\nIn matrix form:\n");
   for ( i = 0; i < 5; i++ ) {
      for ( j = 0; j < 2; j++ ) {
         printf("%d  ", a[i][j] );
      }
printf("\n"); // new line at each row
   }

/* 3d dimension array */
for ( k = 0; k < page3d; k++ ) {
for ( i = 0; i < row3d; i++ ) {
for ( j = 0; j < col3d; j++ ) {
array3d[i][j][k] = row3d*col3d*k + col3d*i + j;
printf("a[%d][%d][%d] = %d\n", i, j, k, array3d[i][j][k]); // printf("a[%d][%d][%d] = %d\n", i, j, k, Random(1024));
}
      }
   }
printf("\nIn matrix form:\n");
for ( k = 0; k < page3d; k++ ) {
for ( i = 0; i < row3d; i++ ) {
for ( j = 0; j < col3d; j++ ) {
printf("%d ", array3d[i][j][k]); // printf("a[%d][%d][%d] = %d\n", i, j, k, Random(1024));

}
printf("\n"); // new line at each row
      }
printf("New Page\n"); 
   }

nTotalNum = sizeof(array3d)/sizeof(array3d[0][0][0]);
nRow = sizeof(array3d)/sizeof(array3d[0]);
nCol = sizeof(array3d[0])/sizeof(array3d[0][0]);
nPage = nTotalNum/(nRow*nCol);
printf("size(array3d) = [%d, %d, %d, %d]\n\n", nRow, nCol, nPage, nTotalNum);


for(i=0; i<10; i++)
        {    
            printf("%d\n", Random(7));
        }

return 0;
}

  评论这张
 
阅读(276)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016