首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言手动输入字符数组 获取不正确解决方法

2013-11-11 
C语言手动输入字符数组 获取不正确好像涉及到字符处理就必须的特别小心,一不小心就掉坑里了。下面是我的程

C语言手动输入字符数组 获取不正确
好像涉及到字符处理就必须的特别小心,一不小心就掉坑里了。
下面是我的程序,不懂为什么结果会是这样,求知道的人点拨一下~~~
#include<stdio.h>
#define NUM 5
int main()
{
   int i,j;
   char a[NUM ][NUM ];
   for( i = 0; i < NUM; i++)
      for( j = 0; j < NUM; j++)
           scanf("%c", &a[i][j]);
  
 for( i = 0; i < NUM; i++)
  {
      for( j = 0; j < NUM; j++)
           printf("%c", a[i][j]);
      printf("\n");
  }
return 0;
}

这里我的输入是:
....#
.#.@.
.#@..
#....
.....

程序输出为:
....#

.#.@
.
.#@
..
#.
...
.

WTF,求助~~~ C语言 二维字符数组
[解决办法]

#include<stdio.h>
#define NUM 5
int main()
{
int i,j;
char a[NUM ][NUM ];
for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
{
scanf("%c", &a[i][j]);
if ( '\n' == a[i][j])
{
j--;
}
}
}

for( i = 0; i < NUM; i++)
{
for( j = 0; j < NUM; j++)
printf("%c", a[i][j]);
printf("\n");
}
//system("pause");
return 0;
}


附上代码,考虑考虑
[解决办法]
这个问题其实可以不用改!
你在输入的时候直接输入25个字符就可以,不用换行输入,
它会自动输出5,5的矩阵。
[解决办法]

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

试试,吃掉了回车符

热点排行