SOL*_*LSD 2 c multidimensional-array
我正在尝试使用这段代码依次打印出二维字符数组的每个元素:
#include <stdio.h>
#include <stdlib.h>
char positions[3][3] = {'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I'};
int main(){
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
printf("%s \n", &positions[i][j]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但输出是:
ABCDEFGHI
BCDEFGHI
CDEFGHI
DEFGHI
EFGHI
FGHI
GHI
HI
I
Run Code Online (Sandbox Code Playgroud)
代替:
A
B
C
D
E
F
G
H
I
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决它。我环顾四周,没有找到这个特定问题的任何答案。任何建议都会很棒。谢谢你。
小智 5
您的 printf 确实需要 %s ,这会强制将 char 数组转换为从第一个条目开始的字符串。尝试跑步
printf("%c \n", positions[i][j]);
Run Code Online (Sandbox Code Playgroud)
打印出字符。看看会发生什么;)
你好