当前位置:首页 » 编程语言 » c语言打印直方图
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言打印直方图

发布时间: 2022-11-19 04:13:37

‘壹’ c语言简单编程

#include<stdio.h>

int main()
{

double a[12], sum = 0;
int percentage, i;
for (i = 0; i < 12; i++)
{
scanf("%lf", &a[i]);
sum += a[i];
}
for (i = 0; i < 12; i++)
{
percentage = int((a[i] / sum) * 100 + 0.5);
printf("%d(%d%%)", i + 1, percentage);
while (percentage--)
{
printf("#");
}
printf("\n");
}

return 0;

}

‘贰’ 求C语言垂直直方图的代码 高手帮忙!!

按照你的题意,我编写的的C代码如下:(在Turbo c 2.0下运行成功)
#include"stdio.h"
#include"string.h"
void main()
{
int i,j,n;
char c[30];
printf("input a word:");
gets(c);
printf("%s\n",c);
n=strlen(c);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("*");
printf("\n");
}

}
不知道是否是你想要的答案,希望对你有一点帮助。

‘叁’ 请各位是C语言高手的大哥哥大姐姐帮帮忙,急急急!!!!

你看看满意否?

#include <stdio.h>
#include <stdlib.h>
void print_star(int n)
{
int i;
for(i=1;i<=n;++i) printf("*");
}
main()
{
int i,j,t;
int count[11]={0,0,0,0,0,0,0,0,0,0,0};
int score[40]={2,2,2,2,3,3,5,4,5,4,8,7,10,2,2,2,2,3,3,5,4,5,4,8,7,1,2,2,2,2,3,3,5,4,5,4,8,7,1,9};
for(i=0;i<40;++i)
{
switch(score[i])
{
case 1:count[1]+=1;break;
case 2:count[2]+=2;break;
case 3:count[3]+=3;break;
case 4:count[4]+=4;break;
case 5:count[5]+=5;break;
case 6:count[6]+=6;break;
case 7:count[7]+=7;break;
case 8:count[8]+=8;break;
case 9:count[9]+=9;break;
case 10:count[10]+=10;break;
default:printf("the %2dth score is out of range!\n",i+1);
}
}
printf("Grade Count Histograme\n");
for(i=1;i<=10;++i)
{
printf("%2d%5d\t",i,count[i]);
print_star(count[i]);
printf("\n");
}
system("pause");
}

‘肆’ 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语言打印直方图

这个函数histogramme里面的x没有赋值
for(j=0;j<x;j++) 这个for循环不执行~

另外sample=malloc(x*sizeof(double)); 修改为:
sample=(double*)malloc(x*sizeof(double));

‘陆’ 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语言运行问题

看这一行:while ((c = getchar()) != EOF)
其中的EOF,
windows按ctrl+z回车
linux按ctrl+d
就可以了

‘捌’ 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语言画图怎么画直方图

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

‘拾’ 用c语言编写一个程序,打印输入单词的长度的直方图

/*
练习1.13;
编写一个程序,打印输入中长度的直方图。
*/
# include <stdio.h>
# define MAXHIST 15 //最大长度的直方图
# define MAXWORD 11 //一个单词的最大长度
# define IN 1 //文字内
# define OUT 0 //外一个单词

/*打印水平直方图*/
int main(void)
{
int c,i,nc,state;
int len; //每条的长度
int maxvalue; //最大者为
int ovflow; //数量的溢出的话
int wl[MAXWORD]; //单词长度计数器

state = OUT;
nc = 0; //在一个单词字符的数量
ovflow = 0; //字数> = MAXWORD
for(i = 0;i < MAXWORD; ++i)
wl[i] = 0;
while ((c = getchar()) != EOF)
{
if (c == ' ' || c == '\n' || c == '\t')
{
state = OUT;
if(nc > 0)

if(nc < MAXWORD) //如果nc小于11则wl[nc]元素加一
++wl[nc];
else //否则ovflow加一
++ovflow;

nc = 0;
}
else if (state == OUT)
{
state = IN;
nc = 1; //开始一个新单词
}
else
++nc; //文字内
}
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);
return 0;
}