c语言编程设计直方图
(1)请编写如下的用字符来绘制简易直方图的函数:voidDrawHistogram(intnArray[],intnCount,charch);其中,nArray为具有n...
(1) 请编写如下的用字符来绘制简易直方图的函数:
void DrawHistogram(int nArray[], int nCount, char ch);
其中,nArray为具有nCount个元素的数组,ch为画图用的字符。若ch为字符*,则该函数能输出由多行多个连续星号*构成的图形,以表示该组数的直方图。如果数组中的内容为 15 10 13 8 2 5,则对应简易直方图可以是:
*************** 15
********** 10
************* 13
******** 8
** 2
***** 5
思考:如何绘制竖直方图,使之看起来更自然?
(2) 针对你的实验数据,请自己设计若干取值区间,编写函数:
void CountRangeItems(double dArray[], int nDataItems, int nArray[]);
用于统计dArray的数据在各区间中的出现的项数(数据区间分布统计),把这些项数存入数组nArray中。如身高数据设有5个区间:160人以下,2人,160-165, 3人,166-170, 5人,171-175,4人,175以上,8人,共5个区间,5项统计数据。函数应算出这5项统计数据2,3,5,4,8,并存入数组nArray的0..4单元中。统计结果作为DrawHistogram中的nArray参数,区间数5作为nCount参数 展开
void DrawHistogram(int nArray[], int nCount, char ch);
其中,nArray为具有nCount个元素的数组,ch为画图用的字符。若ch为字符*,则该函数能输出由多行多个连续星号*构成的图形,以表示该组数的直方图。如果数组中的内容为 15 10 13 8 2 5,则对应简易直方图可以是:
*************** 15
********** 10
************* 13
******** 8
** 2
***** 5
思考:如何绘制竖直方图,使之看起来更自然?
(2) 针对你的实验数据,请自己设计若干取值区间,编写函数:
void CountRangeItems(double dArray[], int nDataItems, int nArray[]);
用于统计dArray的数据在各区间中的出现的项数(数据区间分布统计),把这些项数存入数组nArray中。如身高数据设有5个区间:160人以下,2人,160-165, 3人,166-170, 5人,171-175,4人,175以上,8人,共5个区间,5项统计数据。函数应算出这5项统计数据2,3,5,4,8,并存入数组nArray的0..4单元中。统计结果作为DrawHistogram中的nArray参数,区间数5作为nCount参数 展开
展开全部
#include <stdio.h>
void DrawHistogram(int nArray[], int nCount, char ch) {
int i,j,m = 0;
for(i = 0; i < nCount; ++i) {
for(j = 0; j < nArray[i]; ++j)
printf("%c",ch);
printf("%d\n",nArray[i]);
}
printf("\n");
}
void CountRangeItems(double dArray[], int nDataItems, int nArray[]) {
int i;
for(i = 0; i < nDataItems; ++i) {
if(dArray[i] <= 160) ++nArray[0];
else if(dArray[i] < 165) ++nArray[1];
else if(dArray[i] < 170) ++nArray[2];
else if(dArray[i] < 175) ++nArray[3];
else if(dArray[i] > 175) ++nArray[4];
}
}
int main() {
double height[] = {185,176,165,169,160,152,187,196,178,189,196,182,181,176,159,163,168};
int nArray[5] = {0};
int nCount = 0,size = sizeof(height)/sizeof(height[0]);
CountRangeItems(height,size,nArray);
DrawHistogram(nArray,5,'*');
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询