C语言二维数组输入问题···为什么输入的的次数和定义的不一样···

2024-11-24 20:05:21
推荐回答(2个)
回答1:

这是因为 “回车” “空格”等操作也被当作字符输入了。可以使用一个getchar()将回车吸收。具体的程序我给你复制了上来,只在你这基础上加了个输出以便观察

#include
void main()
{
 char ch[100][100];
 int R,C;
 scanf("%d",&R);
 scanf("%d",&C);
 printf("%d %d\n",R,C);
 int i,j;
 for(i=0,j=0;i {
  for(j=0;j  {
   getchar();
   scanf("%c",&ch[i][j]);
   
  } 
 }
 for(i=0;i {
  for(j=0;j  {
   printf("%c ",ch[i][j]);
  }
  printf("\n");
 }
}
运行结果

回答2:

%c是格式控制符,表示输入的是字符类型,但是空格和回车也属于字符类型,所以你输入两个字符的同时也把空格或者回车存到数组里了,你在scanf()语句后面加上getchar();就好了,它可以接受空格或回车。