求大佬看看,哪错了,怎么连输入都不行

qq_37314512 2017-03-17 09:00:36


#include<stdio.h>
int main()
{
int m,n,i;
char k[100]={0},a,b;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++)
scanf("%c",&k[i]);
for(i=0;i<n;i++)
{
scanf("%c%c",&a,&b);
for(i=0;i<m;i++)
{
if(k[i]==a)
k[i]=b;
else if(k[i]==b)
k[i]=a;
}
}
for(i=0;i<m;i++)
printf("%c",k[i]);
return 0;
}
...全文
113 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2017-03-17
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
    int m, n, i, j;
    char k[100] = {0}, a, b;
    scanf("%d%d", &m, &n);
    getchar();
    for(i = 0; i < m; i++)
        scanf("%c", &k[i]);
    getchar();
    for(i = 0; i < n; i++) {
        scanf("%c %c", &a, &b);
        for(j = 0; j < m; j++) {
            if(k[j] == a)
                k[j] = b;
            else if(k[j] == b)
                k[j]=a;
        }
        getchar();
    }
    for(i = 0; i < m; i++)
        printf("%c",k[i]);
return  0;
} 
还是%c搞的鬼,因为输入后回车符还在输入缓存里,下次的%c会吸收'\n',另外,scanf(%c %c", &a, &b);根据样例需要加个空格。 建议对于字符数组,直接使用fgets输入,这样可以规避这个问题。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧