2012-04-11 206 views
2

我正在寫一個函數來繪製直方圖,但我遇到了一個問題。 這是代碼繪製直方圖

void plotHist(int num, regression *r, histData *h) 
{ 
    int i, j; 
    for (i = 0; i< h->numHist; i++) 
    { 
     printf("%2f\t|", h->hist[i].xValue) ; 
      for (j = 0 ; j < h->hist[i].yFrequency/5; j ++) 
      { 
       printf("*"); 

      } 


     printf("\n"); 
    } 

} 

結果我在屏幕上得到的是:

   -199.422 | 
       -142.232 |**** 
       -98.232 |****** 
       -21.32 |*********** 
       43.424 |**************** 
       58.234 |*************** 
       92.123 |********* 
       189.5 |**** 

的問題是,我有「O」字母,我不另一個陣列添加到該柱狀圖知道該怎麼做。 結果應該是這樣的:

 -199.422 | o 
     -142.232 |****o 
     -98.232 |******o 
     -21.32 |********o** 
     43.424 |**********o***** 
     58.234 |********o****** 
     92.123 |******o** 
     189.5 |****o 
+0

「o」對應什麼值? – DhruvPathak 2012-04-11 08:35:47

+0

「o」對應於另一個數組名稱的值gaussY [] – 2012-04-11 08:39:29

回答

2

不要立即用printf打印直方圖。相反,在您進行打印之前找出所有數據點的位置。這樣,您不必檢查每次打印字符的數據時間,第二個數組也不必位於直方圖的繪製區域內。