题目:创建一个三维数组,4*4*4个元素,数字随机生成,找出每行最大的数,每面最大的数,以及整个数组中最大的数的地址,具体实现如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void PrintMaxValByIndex(int(*pData)[4][4], int nRows)
{
int * RowMaxVal[4][4] = { 0 };
int * PlanMaxVal[4] = { 0 };
int nMaxVal = 0;
int i = 0;
int j = 0;
int k = 0;
int * pMaxVal = NULL;
pMaxVal = &pData[0][0][0];
for (i = 0; i < nRows; i++)
{
PlanMaxVal[i] = &pData[i][0][0];
for (j = 0; j < 4; j++)
{
RowMaxVal[i][j] = &pData[i][j][0];
for (k = 0; k < 4; k++)
{
//行
if (pData[i][j][k] > *RowMaxVal[i][j])
{
RowMaxVal[i][j] = &pData[i][j][k];
}
//面
if (pData[i][j][k] > *PlanMaxVal[i])
{
PlanMaxVal[i] = &pData[i][j][k];
}
//体
if (pData[i][j][k] > *pMaxV