请各位大哥大姐大妹子帮忙看看程序哪里错了
输入两个字符串 s1 和 s2,将 s1 复制到 s2 并输出s2。复制时,若字符串 s1 中存在缩写形式(如:a–z)应转换为字符串 s2 中的完整形式(abcd…… xyz )。“-”号之前的字符必须小于“-”号之后的字符才是合法的缩写形式。例如,s1=“abc-fg” ,则复制后 s2=“abcdefg” ,如果 s1=“abc-af” ,则复制后s2=“abc-af” 。应能够处理任意可显示的 ASCII 字符。
附件中有执行后的图片
#include<stdio.h>
#include<string.h>
main()
{char s1[100],s2[100],s3[100];
int i,j,k,n,t,m;
gets(s1);
gets(s2);
n=strlen(s1);
for(i=0;i<n;i++)
{if(s1[i]=='-'&&(s1[i-1]<s1[i+1]))
{j=s1[i+1]-s1[i-1];m=0;
if(j==1) {for(t=i;t<n;t++) s1[t]=s1[t+1];}
else {for(k=s1[i-1];k<s1[i+1];k++)
s3[m++]=k;
for(t=n-1;t>i;t--)
s1[t+j-2]=s1[t];
for(m=0;m<=j-1;m++)
s1[i+m-1]=s3[m];
n=strlen(s1);
}
}
}
strcpy(s2,s1);
printf("%s\n",s1);
system("pause");
}