二维字符数组怎么输入输出

用多重循环循环输入输出最后一行不完整怎么用%s或者gets输入输出

如果要读入的字符要按行读入, 包含 中间的空白字符也要读入,而不是跳过,那么用 gets() 一次读一行为好。考虑字符串结束符 \0 要一个单位存放,开数组时,要开大一点。
#include<stdio.h>

int main( )
{
char a[5][6];
int x,y;
for (x=0;x<5;x++) gets(a[x]);
for (x=0;x<5;x++) printf("%s\n",a[x]);
return 0;
}
这是完整程序,每行5个字符或短于5个字符。一次读一行。读完5行后输出。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-24
其实并不存在真正的“二维”,只不过是C编译器自动的将它 一行一行的保存成了一维信息。所以,二维数组的输入只要用双重循环即可,比如:
int a[11][11];
for(int i=0; i<10; i++){
for(int j=0; j<10; j++){
scanf("%d",&a[i][j]);

}
}
其实 int a[3][3] 可以这样初始化:
int a[3][3] = {0,1,2,3,4,5,6,7,8};
编译器会自动的将线性信息写入二维数组中。本回答被网友采纳