2013-03-31 49 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)); 
相关问题