直方圖統計c語言
㈠ 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的初學者,僅供參考。