问题是我在数组中看不到 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;
}
有什么问题? 有没有办法解决它?
答案 0 :(得分:5)
点后的数字是精度。如果精度为0(或不存在),则printf不会打印出0
。在您的情况下,您不需要点:
printf("%2d ", ...)
答案 1 :(得分:2)
更改
printf("%2.d ", *(Ptr + i));
到
printf("%2d ", *(Ptr + i));