#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
int main()
{
int GraphDriver
int GraphMode
int i, x, y
char buffer[5]
int data[]={7,3,12,6,9,5,8,11}
GraphDriver = DETECT /*自动检测图形设备*/
initgraph(&GraphDriver, &GraphMode, "")/*初始化图形设备*/
setcolor(15) /*设置前景色,白色*/
moveto(635, 461) /*移动画笔至点(635,461)*/
lineto(20, 461) /*从当前画线至(20,461),并移画笔到(20,461),画x轴*/
lineto(20, 20) /*从当前画线至(20,20),并移画笔到(20,20),画y轴*/
setcolor(15) /*设置前景色,白色*/
for (i = 1 i <13i++)
{
itoa(i, buffer, 10) /*将i以十进制形式转换成字符串,保存在buffer*/
outtextxy(20 - textwidth(buffer), 456 - i * 36, buffer)/*在适当位置输出y轴的刻度对应的标签*/
moveto(20, 460 - i * 36)/*画笔移至y轴刻度起点*/
lineto(23, 460 - i * 36)/*画y轴刻度*/
}
setfillstyle(SOLID_FILL, 1)/*设置填充模式(配合直方图)*/
for (i = 0 i <8i++)
{
moveto(i * 50 + 49, 461)/*移动画笔至x刻度处*/
lineto(i * 50 + 49, 465)/*画x刻度*/
outtextxy(i * 50 + 51, 463, itoa(i + 1, buffer, 10)) /*输出x轴刻度*/
bar(i * 50 + 35, 460 - data[i] * 36, i * 50 + 65, 460)/*画直方图*/
}
getch() /*等待一个按键*/
closegraph() /*关闭图形模式*/
}
#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
}