字符数组,将b串字符最大值输至a串字符最小值之后

问题遇到的现象和发生背景

MynameisAmy
MynameisJane
此输入数组所得结果正确 MynameisAymy
/MynameisAmyxzxca
MynameisJanesdcx
/
此输入数组结果错误,为 MynameisAdmyxzxca
所得到的最大值变成13,即d,而不是y 正确:MynameisAymyxzxca

问题相关代码,请勿粘贴截图

#include <stdio.h>
#include <string.h>
#include<stdlib.h>
int main(void)
{
    /*********Begin*********/
    int i,j,m=0,n=0;
    char a[100],b[100];
    int max=0,min=0; 
    gets(a);
    gets(b);                        //输入得到两个数组 
    m=strlen(a);                     //得到数组a【】的长度,为后加入b【】的最大值铺垫 
    n=strlen(b);
    /*printf("%d\n",m);
        printf("%d\n",n);*/
    for(i=0;i<m;i++){
        if(a[min]>a[i]){
            min=i;                       
        }
    }                                 //得到数组a【】的最小值 
    /*printf("%d\n",min);
    printf("%d\n",i);*/
    for(j=0;j<n;j++){
        if(b[max]<a[j]){
            max=j;
        }
    }                                 //得到数组b【】的最大值
    /*printf("%d\n",max);
        printf("%d\n",b[max]);*/
    
     for(i=m+1;i>min;i--){            //将a【】长度加一 
         a[i]=a[i-1];                   // 将元素往后排 
     } 
     a[i+1]=b[max];                   //循环结束到达a【】,插入b【max】 
     puts(a);
    /*********End**********/
    return 0;
}

```c


/MynameisAmyxzxca
MynameisJanesdcx
/

/*题目描述:输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面。

运行结果及报错内容

MynameisAymy
MynameisAdmyxzxca
无报错

我的解答思路和尝试过的方法

改过字符输入方法,改过循环结束条件

我想要达到的结果

MynameisAymyxzxca


#include <stdio.h>
#include <string.h>
int main(void)
{
char a[102],b[101],c[101],amin,bmax;
int t=0,m=0,j=0;
scanf("%s",&a);
scanf("%s",&b);
amin=a[0];
bmax=b[0];
m=strlen(a);
for(int i=0;a[i]!=’\0’;i++)
{
if(amin>a[i])
{
amin=a[i];
t=i;
}
}
for(int i=0;b[i]!=’\0’;i++)
{
if(bmax<b[i])
{
bmax=b[i];
}
}

for(int i=0;i<=t;i++)
{
    printf("%c",a[i]);
}
printf("%c",bmax);
for(int i=t+1;a[i]!='\0';i++)
{
    printf("%c",a[i]);
}

/*********End**********/
return 0;
}