【发布时间】:2016-03-11 09:23:44
【问题描述】:
如何在 C 中打印二维字符数组的元素?
这是我当前的代码:
int main()
{
unsigned int size;
printf("Enter size:\n");
scanf("%d",&size);
char word[size][size];
//Enter the matrix
for(int k = 0; k < (size); ++k){
for (int j = 0; j < (size); ++j){
printf("Enter letter:");
scanf("%c",&word[k][j]);
}
}
//printf("\n");
for (int k = 0; k < size; ++k){
for(int j = 0; j < size; ++j){
printf("%c",word[k][j]);
}
//printf("\n ");
}
printf("\n");
}
执行时,它会成对返回元素(使用 4x4 数组) 示例:
ab
cd
ef
gh
ij
kl
mn
op
而不是我想要的输出:
abcd
efgh
ijkl
mnop
这是为什么?
【问题讨论】:
-
欢迎来到 Stack Overflow!听起来您可能需要学习如何使用调试器来逐步执行代码。使用好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏差在哪里。如果您要进行任何编程,这是必不可少的工具。进一步阅读:How to debug small programs.
-
您直到最后才明确打印任何换行符,因此其余的可能来自您的输入。在按下回车键之前,您是否在一行中输入了所有值?如果不是,那么
scanf会将换行符存储在word中。 -
对 unsigned int 使用 %u 格式说明符