scanf里面是%c,会吃回车的,在第一重循环用 fflush(stdin); 清空键盘缓冲区
C语言问题 数组问题 求解
5下面是全部代码
#include <stdio.h>
#include <string.h>
int main ()
{
char a[5][5],b[100];int i,j,c,m,n,d,l=0;
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
{
scanf("%c",&a[i][j]);
if(a[i][j]==a[2][1])
{a[2][1]='!';j++;}
}
printf("\n");}
printf("请输入指令:");
scanf("%s",b);
c=strlen(b);
m=2;n=1;
for(i=0;i<c;i++)
{
int y=0;
while(l==0 && y==0)
{
if(b[i]=='A')
{
if(m>0)
{a[m][n]=d;d=a[m-1][n];a[m-1][n]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='B')
{
if(m<4)
{a[m][n]=d;d=a[m+1][n];a[m+1][n]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='L')
{
if(n>0)
{a[m][n]=d;d=a[m][n-1];a[m][n-1]=a[m][n];y=1;}
else
{l=1;break;}
}
else if(b[i]=='R')
{
if(n<4)
{a[m][n]=d;d=a[m][n+1];a[m][n+1]=a[m][n];y=1;}
else
{l=1;break;}
}
else
printf("输入错误!重新输入:\n");
}
}
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%c",a[i][j]);
printf("\n");}
}
下面是我在C-free里面调试的代码:
问题:为什么换行字符'\n'也进入了数组?该如何避免这种情况?
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
1条回答
为你推荐
- C语言数组元素地址应用求解
- 其他
- c语言
- 1个回答
- 请问给定数组长度,char数组赋值超出数组长度,会发生什么?
- 开发语言
- java
- c++
- python
- c语言
- 2个回答
- 关于C语言中字符数组的内存存放问题疑惑
- java
- c++
- c语言
- mysql
- 2个回答
- c语言菜鸟求解`生成随机数组 将其中偶数存在b中
- 开发语言
- c++
- c语言
- 1个回答
- C语言菜鸟求解~一个数组已经从小到大排序 加入一个数字后按照原来从小到大排序
- 开发语言
- c++
- c语言
- 1个回答
- C语言关于二维数组指针求解
- c语言
- 2个回答
- C语言问题 数组问题 求解
- c语言
- 1个回答
- 求解 将一个无符号整数转换为二进制表示存入字符数组的问题
- c语言
- 2个回答
- 求解数组 最后一个输出转换二维数组要怎么做
- c语言
- 2个回答
- 数组单独输出一个元素正确,遍历输出为垃圾值,求解!!!
- c语言
- 2个回答
- 新人求解为什么无法输出?
- c语言
- 1个回答
- 有关于数组中的问题,求解
- c
- c语言
- 3个回答
- 一道C语言的问题编程求帮忙改正
- c
- c语言
- 2个回答
- C语言问题新人求解 一道编程题目
- c
- 编程
- 2个回答
- C语言二维数组问题 求解
- c
- c语言
- 3个回答
- 求解 C语言的数组问题
- c
- 2个回答
- c语言数组定义问题,求解
- objective-c
- c
- 5个回答
- C语言数组的一个小问题
- 数组
- c
- 5个回答