北国137 2022-12-04 15:14 采纳率: 96.4%
浏览 26
已结题

字符串重排,可能是思路不对

img


#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d", &n);
    char r;
    r = getchar();
    while (n--)
    {
        char ch[1000] = { 0 };
        gets(ch);
        int len = strlen(ch);
        int m = ch[len - 1] - 48;
        char a[1000] = { 0 }, b[1000] = { 0 };
        for (int i = 0; i < m; i++)
            a[i] = ch[i];
        int k = 0;
        for (int i = m + 1; i < len - 2; i++)
        {
            b[k] = ch[i];
            k++;
        }
        char fu[200];
        for (int i = 0; i < len - m - 1; i++)
            printf("%c", b[i]);
        printf("%c", ch[m]);
        for (int k = 0; k < m; k++)
            printf("%c", a[k]);
    printf("\n");
    }
    return 0;
}

VS编译运行可以,但是在oj上答案错误

  • 写回答

2条回答 默认 最新

  • 浪客 2022-12-04 16:37
    关注

    示例中1和3对不上

    
    int main()
    {
        int n;
        scanf("%d", &n);
        while (n--)
        {
            char ch[100] = {0}, a[100] = {0}, c;
            int m, t = 0;
            scanf("%s%d", ch, &m);
            int len = strlen(ch);
            c = ch[m];
            for (int i = m; i < len; i++, t++) //复制ch中m之后的到a
                a[i - m] = ch[i];
            for (int i = m - 1; i >= 0; i--, t++) //复制ch中m前的到a,倒序
                a[t] = ch[i];
    
            printf("%s\n", a);
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 12月4日

悬赏问题

  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。