为什么数字'0'(数字,而不是字符)不显示?

时间:2013-03-31 01:33:48

标签: c

问题是我在数组中看不到 0

我运行我的程序并看到2D数组。但是,我没有看到任何内容,而是 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;
}

有什么问题? 有没有办法解决它?

2 个答案:

答案 0 :(得分:5)

点后的数字是精度。如果精度为0(或不存在),则printf不会打印出0。在您的情况下,您不需要点:

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

答案 1 :(得分:2)

更改

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

printf("%2d  ", *(Ptr + i));
相关问题