c语言二维字符数组的输入输出

int n=3;
int a[n][n];
for(int i=0;i<n;i++)
      for(int j=0;j<n;j++)
scanf("%c",&a[i][j]);
for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
printf("%c",a[i][j]);  

这些代码不能正确的对二维数组进行输出跟输出
输入
asd
asd
asd
输出
asd
asd

因为输入的内容中包含换行符,用scanf("%c",&a[i][j]);会读取换行符。要用 getchar();把每个行的换行符跳过
你题目的解答代码如下:

#include <stdio.h>
int main()
{
    int n=3;
    int a[n][n];
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            scanf("%c",&a[i][j]);
        getchar();
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            printf("%c",a[i][j]);
        printf("\n");

    }
    return 0;
}

img

如有帮助,望采纳!谢谢!

不能换行输入,因为换行符也算一个字符,在一行输入就正常了。