大一新生 学校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个回答

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

zhumogao
good juice 那应该怎么解决呢
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问