good juice
2019-11-08 12:53
采纳率: 100%
浏览 350

大一新生 学校oj上的问题 实在不知道哪里错了 大佬们能帮我解决一下吗?

#include<stdio.h>
#include<string.h>
int main()
{
    int len2,len1,i,max,n;
    while(scanf("%d",&n)!=EOF)
    {
        char s1[2000]={0},s2[1000]={0};
        gets(s1);
        gets(s2);
        len1=strlen(s1);
        max=0;
        for(i=1;i<len1;i++)//寻找一串字符中最大的字符 
        {
            if(s1[i]>s1[max])
            max=i;
        }
        len2=strlen(s2);
        for(i=len1-1;i>=max+1;i--)//将s1字符串中最大字符后面的字符移动len2个位置 
        {
            s1[i+len2]=s1[i];
        }
        for(i=max+1;i<=max+len2;i++)//将s2中的字符插入到s1当中 
        {
            s1[i]=s2[i-max-1];
        }
        puts(s1);
    }
    return 0;
}

问题:给定两个字符串s和t,在s字符串中的最大字符后边插入字符串t。
输入:测试数据有多组,每组包含两个字符串s和t,分别占两行,均不超过100个字符。
输出:对于每组测试数据,输出插入后的新字符串,单独占一行。若有多个最大字符,则插在第一个之后。
我试了很多组数据都对了(用的dev c++),但是在学校的oj上还是wa

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • buazrl 2019-11-08 15:58
    已采纳

    程序有错误,当第一个字符串以数字开头时,结果会错。

    1 打赏 评论

相关推荐 更多相似问题