⑴ c语言 绘制水平直方图
#include <stdio.h>
#define MAXHIST 15 /*max length of histogram*/
#define MAXWORD 11 /*max length of a word*/
#define IN 1 /*inside a word*/
#define OUT 0 /*outside a word*/
/*print horizontal histogram*/
void main()
{
int c,i,nc,state;
int len; /*length of each bar*/
int maxvalue; /*maximum value for wl[]*/
int ovflow; /*number of overflow words*/
int wl[MAXWORD]; /*word length counters */
state=OUT;
nc=0; /*number of chars in a word*/
ovflow=0; /*number of words >=MAXWORD*/
for(i=0;i<MAXWORD;++i)
wl[i]=0; //初始化每个单词的长度为0
while((c=getchar())!=EOF) //从键盘获取字符串,并判断是否输入结束,结束应该是ctrl+z
{
if(c==' '||c=='\n'||c=='\t') //判断是否是一个单词(单词间都有间隔的)
{
state=OUT; //初始化状态为输出,表明这个单词已输入完成
if(nc>0) //判断这是不是一个单词
if(nc<MAXWORD)
++wl[nc]; //保存单词中字符的个数
else
++ovflow; //如果超过范围,则用ovflow保存字符数
nc=0;
}
else if(state==OUT) //如果上面的if不成立,则说明这个单词还没有输入完成
{
state=IN; //将状态设为IN,则表名这个单词没输入完成,还要继续输入。
nc=1; /*beginning of a new word*/
}
else //判断后面的字符是否是一个单词
++nc; /*inside a word*/
}
maxvalue=0;
for(i=1;i<MAXWORD;++i)
if(wl[i]>maxvalue)
maxvalue=wl[i];
for(i=1;i<MAXWORD;++i)
{
printf("%5d - %5d : ",i,wl[i]);
if(wl[i]>0)
{
if((len=wl[i]*MAXHIST/maxvalue)<=0)
len=1;
}
else
len=0;
while(len>0)
{
putchar('*');
--len;
}
putchar('\n');
}
if(ovflow>0)
printf("There are %d words>=%d\n",ovflow,MAXWORD);
}
//++wl[i];这个肯定可以的,wl[i]是一个数组变量,既然是个变量当然可以自增了。
⑵ c语言编程设计直方图
#include<stdio.h>
voidDrawHistogram(intnArray[],intnCount,charch){
inti,j,m=0;
for(i=0;i<nCount;++i){
for(j=0;j<nArray[i];++j)
printf("%c",ch);
printf("%d
",nArray[i]);
}
printf("
");
}
voidCountRangeItems(doubledArray[],intnDataItems,intnArray[]){
inti;
for(i=0;i<nDataItems;++i){
if(dArray[i]<=160)++nArray[0];
elseif(dArray[i]<165)++nArray[1];
elseif(dArray[i]<170)++nArray[2];
elseif(dArray[i]<175)++nArray[3];
elseif(dArray[i]>175)++nArray[4];
}
}
intmain(){
doubleheight[]={185,176,165,169,160,152,187,196,178,189,196,182,181,176,159,163,168};
intnArray[5]={0};
intnCount=0,size=sizeof(height)/sizeof(height[0]);
CountRangeItems(height,size,nArray);
DrawHistogram(nArray,5,'*');
return0;
}
⑶ c语言画图怎么画直方图
因为平时我们用的c语言是在文本方式下运行的,所以不能够直接用c语言画图,在用c 语言惊醒画图之前,首先应该把c语言从文本模式转换为图形模式,初始化函数是 intgraph(图形驱动器名,图形驱动器模式,图形驱动器路径);一般图形驱动器名定为DETECT,模式为gmode,路径在你安装c语言文件夹里,BGI子目录,
画线的函数是line(x1,y1,x2,y2);分别是线的起始坐标。
其库函数包含在<graphics.h>里
⑷ 用C语言怎样画正方形
根据你的编译器的绘图函数.
有的有绘 rect 函数, (参数,4个角点坐标. 或一个角点坐标和长宽值).
那你用循环语句依次画长宽相等的矩型.
如果只有画直线函数.
那你用循环语句依次调 MoveTo, LineTo 按 角点坐标 画直线.
⑸ C语言怎么画矩形
用lineto函数画矩形
#include<graphics.h>
main()
{int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c:\\tc");
cleardevice();
moveto(160,120);
lineto(480,120);
lineto(160,360);
lineto(160120);
getch();
closegraph();
}
图形和图像函数包含在graphics.h里面
rectangle() 画矩形函数
功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。
用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom);
说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。
这个函数对应的头文件为graphics.h
返回值: 无
例: 下面的程序画一些矩形实例:
#i nclude<graphics.h>
void main()
{
int driver,mode;
driver=DETECT;
mode=0;
initgrpah(&driver,&mode,"");
rectangle(80,80,220,200);
rectangle(140,99,180,300);
rectangle(6,6,88,88);
rectangle(168,72,260,360);
getch();
restorecrtmode();
}