2012-11-17 30 views
-1

您好,我有這個功能ç直方圖錯號

int printofarray(int *j,double *n) 
{ 
int x,k; 
k=*j; 
if(n==NULL) { 
printf("array was not created\n"); 
return 1;} 

for(x=0;x<k;x++){ 
printf("%.2lf\n",*(n+x));} 

return 0; 
} 

當我使用它的輸出是這樣

34.77 
6114.05 
410.70 

,但我想他們寫這樣

34.77 
6114.05 
410.70 

想法如何?

+0

請空格和英文!另外,不要強制使用'malloc()'的返回值。 – 2012-11-17 16:11:23

+0

malloc有什麼問題? –

+1

@userXXX [這是錯誤的,你使用3個問號。](http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc) – 2012-11-17 16:22:31

回答

2

您在陣列dni動態分配爲:

dni=(int *) malloc(number*sizeof(int)); 

不分配任何值其元件,但最後打印的元素,這將明顯打印垃圾。

+0

dni應該是天我將編輯它 –

+0

您選擇幾種不同的方式來取消引用您的指針。不是說這是錯誤的,但是這種一致性可能有助於調試。在任何情況下,都可以自由地使用printf語句來查找分配給變量的值。 –

+0

天數值很好 –

0

您的打印語句保持對齊狀態。如果你想要小數點排成一列,你必須知道你正在處理的號碼大小。最簡單的方法是指定數字的數量,就像這樣。當然,如果你有5個地方而不是6個地方,這將會中斷。

for(x=0;x<k;x++){ 
printf("%7.2lf\n",*(n+x));}