夏秋的朝暮. 2022-11-26 10:14 采纳率: 90%
浏览 4
已结题

C语言,请问为什么无法实现输入啊……

请问第21行的输入操作方式为什么无法输入呢?单独写那段代码是可以输入的,但放进这个整体就不行了……

#include"stdio.h"
#include"string.h"
int main(void)
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d %d",&n,&m);
        char str[n][1005];
        int i;
        for(i = 0;i < n;i++)//输入n行字符串
        {
            gets(str[i]);//shu ru n hang zi fu chuang
        }
        char ch;
        int x,y;
        char j[1005];//作为交换两行的中间变量
        for(i = 0;i <= m;i++)//进行m次操作
        {
            scanf("%c %d %d",&ch,&x,&y);//输入操作方式
            if(ch == 'C')
            {
                strcpy(j,str[x]);
                strcpy(str[x],str[y]);
                strcpy(str[y],j);
            }
            if(ch == 'A')
            {
                strcat(str[x],str[y]);
            }
        }
        puts(str[1]);
    }
    return 0;
}

Input
第一行输入一个T,代表有T组数据。
每组测试数据第一行输入n(0 < n < 10)和m(0 < m < 10),代表他找了n份情书。接下来n行,每行一句他摘抄的情书里面的话。接下来m行代表m次操作。①A 1 2 表示把第二行情书接到第一行语句的后面。②C 1 2 表示把第二行的内容复制给第一行

Output
输出完成操作后的第一行字符串

Samples
input
1
3 2
I love you.
You jump! I jump !
Can you marry me?
C 2 3
A 1 2
output
I love you.Can you marry me?

  • 写回答

1条回答 默认 最新

  • qybao 2022-11-26 10:38
    关注

    把%c换另一种方式接收,%c可以接收任意输入字符,也就是你的空格键回车键也会被接收,就会导致和你预想的不一样的结果,如果不想改%c,那么你在每次循环输入后主动再接收一个回车字符,即循环的最后后加个getchar或者scanf("%c", &ch)之类的,去掉多余的回车键

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月26日
  • 已采纳回答 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢