2013-03-31 77 views
1

問題是我看不到數組中的。爲什麼數字「0」(數字,不是字符)不顯示?

我運行我的程序,看到二維數組。但不是(第一個元素),我什麼都看不到。

下面是代碼:

#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    int i; 
    int *Ptr; 

    scanf("%d%d", &M, &N); /* Size of array. */ 

    Ptr = malloc(M*N*sizeof(int)); 

    for (i = 0; i < M * N; i++) /* Filling in. */ 
    { 
     *(Ptr + i) = i; 
    } 

    for (i = 0; i < M * N; i++) /* Displaying. */ 
    { 
     if (i % N == 0) 
      printf("\n"); 
     printf("%2.d ", *(Ptr + i)); 
    } 

    return 0; 
} 

問題是什麼? 有什麼方法可以解決它嗎?

+0

似乎存在0(數組的第一個元素是「0」,2-第二單元=「1」等等...) – yulian

+0

的在'printf'格式的字符串中刪除它。 –

+0

Thnx!這是非常有用的評論。 但是,你爲什麼不「回答」安靜?如果你這樣做,我將能夠「接受」它。 – yulian

回答

5

點之後的數字是精度。如果精度爲0(或不存在),則printf不打印0。在你的情況,你不需要點:

printf("%2d ", ...) 
+0

你給出了一個很好的解釋。感謝名單。 – yulian

2

變化

printf("%2.d ", *(Ptr + i)); 

printf("%2d ", *(Ptr + i)); 
相關問題