【验证型】有一个M×N的int型二维数组A,元素的值是从[0, 9]范围内任意取值的。请完成下述函数:
求数组A中各元素取值的统计分布图(即直方图,每个元素值出现的次数)。
函数原型:void hist(int destHist[10], int Mat[M][N], int m, int n);
其中destHist接收该函数定义的int型一维数组的形式参数名称,该数组含有10个元素,而且所有元素均已被初始化为0。
#include <stdio.h>
#include <stdlib.h>
#include "math.h"
/*
【验证型】有一个M×N的int型二维数组A,元素的值是从[0, 9]范围内任意取值的。请完成下述函数:
求数组A中各元素取值的统计分布图(即直方图,每个元素值出现的次数)。
函数原型:void hist(int destHist[10], int Mat[M][N], int m, int n);
其中destHist接收该函数定义的int型一维数组的形式参数名称,该数组含有10个元素,而且所有元素均已被初始化为0。
*/
void hist(int destHist[10],int Mat[10][10],int m,int n);
int main()
{
//int M,N;
int destHist[10],Mat[10][10];
for(int i=0;i<10;i++){
destHist[i]=0;
for(int j=0;j<10;j++)
{
Mat[i][j]=0;
}
}
hist(destHist,Mat,10,10);
return 0;
}
void hist(int destHist[10], int Mat[10][10], int m, int n)
{
int i=0;
// destHist[10]统计0~9出现的次数,即destHist[0]保存0出现的次数,destHist[1] 保存1出现的次数...... destHist[9]保存9出现的次数
for(int i=0;i<10;i++)destHist[i]=0;
// Mat[M][N] 10*10的数组
for(m=0;m<10;m++)
{
destHist[m]=m;
for(n=0;n<10;n++)
{
Mat[m][n]=destHist[m];
printf(" %d %d\n",i,Mat[m][n]);
i++;
}
}
//printf("%d\n",Mat);
}