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

C语言,请问这个该怎么输出?

感觉我写的只是简单的实现了所需要的功能(当然,也可能没实现……),但不知道该怎么输出自己想要的结果……

#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;
        char ch;
        for(i = 0;i < n;i++)//输入n行字符串
        {
            gets(str[i]);//shu ru n hang zi fu chuang
        }
        getchar;
        int x,y;
        char j[1005];//作为交换两行的中间变量
        for(i = 0;i <= m;i++)//输入m次操作方式
        {
            scanf("%c",&ch);
            getchar();
            scanf("%d",&x);
            getchar();
            scanf("%d",&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]);
            }
        }
        //输出操作完一切后的第一行内容
    }
    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?

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-11-27 19:19
    关注

    改动处见注释,供参考:

    #include <stdio.h>
    #include <string.h>
    #define  N 10
    int main(void)
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n,m,i;
            char str[N][1005],ch;
            scanf("%d %d",&n,&m);
            getchar();
            for(i = 0;i < n;i++)//输入n行字符串
            {
                gets(str[i]);//shu ru n hang zi fu chuang
            }
                             //getchar();//();
            int x,y;
                             //char j[1005];//作为交换两行的中间变量
            for(i = 0;i < m;i++)//(i = 0;i <= m;i++)
            {
                scanf(" %c %d %d",&ch, &x, &y); //修改
                               //getchar();
                               //scanf("%d %d",&x, &y);
                               //getchar();
                               //scanf("%d",&y);
                if(ch == 'C')//实现换行
                {
                               //strcpy(j,str[x]);
                    strcpy(str[x-1],str[y-1]); //修改
                               //strcpy(str[y],j);
                }
                if(ch == 'A')//实现拼接
                {
                    strcat(str[x-1],str[y-1]); //修改
                }
            }
            printf("%s", str[0]);  //修改
            //输出操作完一切后的第一行内容
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答