用3个for和2个for位三位数组赋值

#include
#include
//三维数组在内存里面也是线性排列
void fun3(int a[5][4][3])
{
	//三个for循环赋值 
	int num = 0;
	for(int i=0;i<5;i++)
	{
		for(int j=0;j<4;j++)
		{
			for(int k=0;k<3;k++)
			{
				a[i][j][k]=++num;
				printf("%-5d",a[i][j][k]); 
			}
			printf("\n");
		}
		printf("\n");
	}
	printf("内存地址:%x\n",a);	
}
//用一个for循环搞定:345 345/100取出百位3,345/10%10取出十位4,345%10取出个位5
void fun1(int a[5][4][3])
{
	for(int i=1;i<=3*4*5;i++)
	{
		a[i/20][(i/5)%4][i%5]=i;
	//	printf("%-5d,%-5d,%-5d",(i/20),(i/5%4),(i%5));
		printf("%-5d",a[i/20][(i/5)%4][i%5]);
		if(i%3==0)
		{
			printf("\n");
			if(i%12==0)
			{
				printf("\n");
			}
		} 
	}
	printf("内存地址:%x\n",a);
} 
int main()
{
	int a[5][4][3];
	printf("内存地址:%x\n",a);
	printf("占用内存的字节数=%d字节\n",sizeof(a));//5*4*3*4=240个字节
	
	fun3(a);
	printf("----------------------------------------------\n\n");
	fun1(a);
	
	return 0; 
}

你可能感兴趣的:(计算机算法设计与分析,C语言,C语言程序设计题,三维,内存)