c语言二维直方图问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:43:42
以下是源程序,在TC2.0下运行后结果很好。我的问题是看不懂,里面有不少函数。请给下面的程序加上完整的注释。谢谢。

# include <graphics.h>
main()
{ int driver=EGA,mode=1;
int b[]={1,3,5,2,4,3,2,1,4,5};
int i,j,xstep=48,ystep=40;
char buffer[10];
initgraph (&driver,&mode,"");
gotoxy(30,3);
printf("%s","this is sample");
line(40,80,40,310);
line(40,310,540,310);
j=310;
settextjustify(CENTER_TEXT,CENTER_TEXT);
for(i=0;i<=5;i++)
{line(20,j,40,j);
itoa(i,buffer,10);
outtextxy(10,j,buffer);
j-=ystep;
}
gotoxy(6,4);
printf("%s","value");
j=40;
settextjustify(CENTER_TEXT,TOP_TEXT);
for(i=0;i<=10;i++)
{
setfillstyle(i+1,i+4);
line(j,320,j,310);
itoa(i,buffer,10);
outtextxy(j,330,buffer);
if(i!=10)
{
bar(j,(310-(b[i]*ystep)),j+xstep,310-1);

# include <graphics.h>
main()
{ int driver=EGA,mode=1;
int b[]={1,3,5,2,4,3,2,1,4,5};
int i,j,xstep=48,ystep=40;
char buffer[10];
initgraph (&driver,&mode,"");/*初始化图形系统*/
gotoxy(30,3);/*调整光标位置,以便为下面的文字输出方位*/
printf("%s","this is sample");/*在以上光标位置显示标题*/
line(40,80,40,310);/*绘制纵坐标轴*/
line(40,310,540,310);/*绘制横坐标轴*/
j=310;
settextjustify(CENTER_TEXT,CENTER_TEXT);/*设置图形状态下输出文件时的对齐方式为水平居中并且垂直居中*/
for(i=0;i<=5;i++)/*这个循环是在绘制纵坐标的刻度线并输出刻度值*/
{line(20,j,40,j);
itoa(i,buffer,10);
outtextxy(10,j,buffer);
j-=ystep;
}
gotoxy(6,4);
printf("%s","value");/*调整光标坐标到(6,4)外,并输出字符串"value"*/
j=40;
settextjustify(CENTER_TEXT,TOP_TEXT);/*重新设置文字对齐方式为水平居中和垂直置顶*/
for(i=0;i<=10;i++)
{
setfillstyle(i+1,i+4);/*设置填充模式与颜色*/
line(j,320,j,310);/*绘制横坐标刻度线*/
itoa(i,buffer,10);
outtextxy(j,330,buffer);/*输出横坐标刻