当前位置:首页 » 编程语言 » 直方图统计c语言

直方图统计c语言

发布时间: 2022-11-03 04:31:56

c语言绘直方图

#include <math.h>
#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 < 13; i++)
{
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 < 8; i++)
{
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(); /*关闭图形模式*/
}

㈡ C语言 成绩统计直方图

写了前面的两个功能:
#include<stdio.h>
#include<string.h>
#define N 30

int main(){
char xm[N][20], nm[20];
int cj[N];
int cnt,i,n=0,x;
float aver=0;
//输入成绩并求平均分
printf("请依次输入每个同学的姓名和成绩(绩为负值时表示数据结束):\n");
scanf("%s %d",nm, &x);
while(x>=0){
strcpy(xm[n],nm);
cj[n]=x;
aver+=x;
n++;
scanf("%s %d",nm, &x);
}
aver/=n;
//统计不及格人数并打印不及格学生名单
printf("不及格学生名单及人数如下:\n");
cnt=0;
for(i=0; i<n; i++){
if(cj[i]<60){
cnt++;
printf("%s\t%d\n",xm[i], cj[i]);
}
}
printf("共有 %d 个学生不及格。\n",cnt);
//统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单
printf("成绩在全班平均分及平均分(%.2f)之上的学生名单及人数如下:\n",aver);
cnt=0;
for(i=0; i<n; i++){
if(cj[i]>aver){
cnt++;
printf("%s\t%d\n",xm[i], cj[i]);
}
}
printf("共有 %d 个学生成绩在全班平均分及平均分之上。\n",cnt);
return 0;
}

㈢ 设计一数据统计程序(C语言),让用户选择用饼图和直方图两种方法显示统计图,要求输入若干数据,计算...

int main()
{
int m;
printf("which method do you want ?\npress 1 pize map \n press 2 fangtu\n 3 out\n");
scanf(&m);
if ( m = 1)
sorry !可以用C++写不,我好久没碰c语言了,都忘得差不多了,写不下去了

㈣ 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语言 绘制水平直方图

#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>
#include<stdlib.h>

//1,2,3,4 分别出现{2 1 4 3} 次
int num[4]={2,1,4,3};
//你把这几个数的统计数字输出在这个数组里.

//假设数据保存在这个里面。
//输出总共就四列。
int statistics()//统计函数.
{int i=0;
int row=0;
//循环找出需要多少行.
for (i=0;i<4;i++){
if (row<num[i])row=num[i];
}
for(i=row;i>0;i--){
char a,b,c,d;
a= (i<=num[0]?'*':' ');
b= (i<=num[1]?'*':' ');
c= (i<=num[2]?'*':' ');
d= (i<=num[3]?'*':' ');
printf("%c %c %c %c\n",a,b,c,d);
}
printf("%c %c %c %c\n",'1','2','3','4');
}

int main(){
statistics();
system("pause");

}

㈦ C语言绘制直方图(C程序设计语言习题1-13)

你好,大概看了一下,这个好像是统计一段文字中单词的长度并绘制直方图。这里wl就是用来记录单词长度的。wl[i] = j 代表长度为i的单词有j个。
比如最开始,wl数组全是0:
wl = [0, 0, 0, 0, ...]
这个时候我们读入了一个长度为2的单词,于是wl[2]++,数组变成:(注意数组下标从0开始)
wl = [0, 0, 1, 0, ...]
如此往复就记录了所有单词的长度统计。

㈧ c语言画图怎么画直方图

因为平时我们用的c语言是在文本方式下运行的,所以不能够直接用c语言画图,在用c 语言惊醒画图之前,首先应该把c语言从文本模式转换为图形模式,初始化函数是 intgraph(图形驱动器名,图形驱动器模式,图形驱动器路径);一般图形驱动器名定为DETECT,模式为gmode,路径在你安装c语言文件夹里,BGI子目录,
画线的函数是line(x1,y1,x2,y2);分别是线的起始坐标。
其库函数包含在<graphics.h>里

㈨ C语言绘直方图

turboc 直方图

#include <math.h>
#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);
lineto(20, 461);
lineto(20, 20);

setcolor(15);
for (i = 1 ; i < 13; i++)
{
itoa(i, buffer, 10);
outtextxy(20 - textwidth(buffer), 456 - i * 36, buffer);
moveto(20, 460 - i * 36);
lineto(23, 460 - i * 36);
}
setfillstyle(SOLID_FILL, 1);
for (i = 0 ; i < 8; i++)
{
moveto(i * 50 + 49, 461);
lineto(i * 50 + 49, 465);
outtextxy(i * 50 + 51, 463, itoa(i + 1, buffer, 10));
bar(i * 50 + 35, 460 - data[i] * 36, i * 50 + 65, 460);
}

getch();

closegraph();
}

㈩ 谁会用C语言编这道题啊

#include
void
print(int
i,int
a)
{
int
j;
printf("%-4d%-3d",i+1,a);
for(j=0;j
{
printf("*");
}
printf("\n");
}
void
diaoyong(int
a[])
{
int
i;
for(i=0;i<5;i++)
{
print(i,a[i]);
}
}
void
main()
{
int
a[40];
int
b[40];
int
i;
for(i=0;i<5;i++)
{
printf("
请第%d位同学输入食品和服务质量分数(1-10):",i+1);
scanf("%d",&a[i]);
scanf("%d",&b[i]);
}
printf("食品质量统计结果:\n");
diaoyong(a);
printf("服务质量统计结果:\n");
diaoyong(b);
}
c的初学者,仅供参考。

热点内容
安卓手机剪映怎么修改成4k帧率 发布:2025-01-10 01:08:21 浏览:951
微信哪个版本不要求配置 发布:2025-01-10 01:07:31 浏览:405
三星插卡激活要密码是什么意思 发布:2025-01-10 00:57:04 浏览:675
web服务器搭建黑马 发布:2025-01-10 00:56:05 浏览:825
戴尔服务器可以当电脑 发布:2025-01-10 00:56:05 浏览:857
linux内存分布 发布:2025-01-10 00:55:58 浏览:125
安卓自动签到app哪个好用 发布:2025-01-10 00:43:42 浏览:168
如何修改笔筒文具盒密码 发布:2025-01-10 00:24:51 浏览:254
安卓手机能从哪里恢复数据 发布:2025-01-10 00:03:16 浏览:165
课程表源码 发布:2025-01-10 00:02:26 浏览:51