打印出特定格式的二维数组用C
问题描述:
所以基本上,当我打印我的阵列,它看起来像这样:打印出特定格式的二维数组用C
P00 P01 P02
P10 P11 P12
P20 P21 P22
我希望它看起来像这样:
M[0][0] M[0][1] M[0][2]
M[0][0] P00 P01 P02
M[1][0] P10 P11 P12
M[2][0] P20 P21 P22
我的代码:
for (z=0; z<N; z++){
for (c=0; c<N;c++){
printf("\t%p", &M[z][c]);
}
printf("\n");
}
注意,地址Pxx是指针地址
答
也许是这样的:
for(i=0;i<N;i++){
printf("\tM[0][%d]",i);
}
printf("\n");
for (z=0; z<N; z++){
printf("M[%d][0]",z);
for (c=0; c<N;c++){
printf(" %p\t", &M[z][c]);
}
printf("\n");
}
答
上述外环:
printf("\t\tM[0][0]\tM[0][1]\tM[0][2]\n");
然后略低于外环:
printf("M[%d][0]\t",i);
是这样的:
printf("\t\t");
for (z=0; z<N; z++)
printf("\tM[0][%d]",z);
printf("\n");
for (z=0; z<N; z++){
printf("M[%d][0]\t",z);
for(c=0; c<N; c++){
printf("\t%p",&M[z][c]);
}
printf("\n");
}
对于便携式代码,使用'printf(“\ t%p”,(void *)&M [z] [c ]);'如果'M [] []'没有准备好''void *',则添加投射。 – chux
但有一件事,这些不是矩阵的正确索引。 (0,0)!=(0,1)。当你给出的坐标都与矩阵本身的一个位置相关时,你说每行/每列的所有内容都是矩阵点。您必须将每个点的位置基本上放在您的Pxx语句始终放置的位置。基本上。而不是在你的M [x] [x]中放置两个点只需将其中一个作为索引m [Var] –