关于c++的问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:01:02
我写了一个程序
在开始时给定了一个数组char a[5][4]={{'b','b','c','d'},{'d','c','c','d'},{'b','d','c','d'},{'c','d','a','b'},{'c','b','c','a'}};后面有scanf("%f",&inputnumber);语句(这个语句和这个数组无关),这个语句是执行的。
可是当我用 for(i=0;i<row;i++)
for(j=0;j<line;j++) scanf("%c",&a[i][j]);
这条语句输入数组的时候,后面的scanf语句就不执行了,这是为什么?望高手解答!谢谢:)

把全部代码粘贴出来哈

是这样的

scanf("%c",&a[i][j]); 输入时,回车‘\n’也进入流中,也作为一个字符放在数组中

所以后面的scanf语句就不执行了,因为已经执行了20次

解决:滤掉回车健

参考程序:

#include <stdio.h>

void main()
{
char a[5][4]={{'b','b','c','d'},{'d','c','c','d'},{'b','d','c','d'},{'c','d','a','b'},{'c','b','c','a'}};

for(int i=0;i<5;i++)
for(int j=0;j<4;j++)
{

scanf("%c",&a[i][j]);
if(a[i][j]=='\n')j--;

}

for(int i=0;i<5;i++)
for(int j=0;j<4;j++) printf("%c",a[i][j]);

}