【验证型】有一个M×N的int型二维数组A,元素的值是从[0, 9]范围内任意取值的。请完成下述函数:
求数组A中各元素取值的统计分布图(即直方图,每个元素值出现的次数)。
函数原型:void hist(int destHist[10], int Mat[M][N], int m, int n);
其中destHist接收该函数定义的int型一维数组的形式参数名称,该数组含有10个元素,而且所有元素均已被初始化为0。
1条回答 默认 最新
- 旭日初扬 2022-11-26 18:37关注
#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); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报