永发信息网

求问我编写的C-Free程序哪里出问题了问题?

答案:1  悬赏:10  手机版
解决时间 2021-11-24 23:37
求问我编写的C-Free程序哪里出问题了问题?
最佳答案
#include
#include
int main()
{
    char a[100],b[100];
    char link(char s1[],char s2[]);
    int i;
    gets(a);
    gets(b);
    i=link(a,b);                
 printf("总长=%d
",i);               
    puts(a);
}
char link(char s1[],char s2[])
{   
    int i,j=0,l1,l2;
 char temp[100];
    l1=strlen(s1);
    l2=strlen(s2);
    if(l1>=l2)
        for(i=0;s1[i]!='';i++) 
        {
         temp[j++]=s1[i];
         if(s2[i]!='')
             temp[j++]=s2[i];     
        }
    else
        for(i=0;s2[i]!='';i++) 
        {
         if(s1[i]!='')
       temp[j++]=s1[i];
         temp[j++]=s2[i];     
        }
    j--;   
    for(i=0;i<=j;i++)
        s1[i]=temp[i];
    s1[i]=''; //加个字符串的结束标记
    return i;
}追问
还是不行……和之前运行的结果一样,最后几位都会出乱码
追答你设计的有问题,if(l1>=l2)
        for(i=0;s1[i]!='';i++) 
        {
         temp[j++]=s1[i];
         if(s2[i]!='')
             temp[j++]=s2[i];     
        }
你应该用s2[i]!='' 经行判断,你如果用s1[i]判断,肯定不对
#include
#include
int main()
{
    char a[100],b[100];
    char link(char s1[],char s2[]);
    int i;
    gets(a);
    gets(b);
    i=link(a,b);                
 printf("总长=%d
",i);               
    puts(a);
}
char link(char s1[],char s2[])
{   
    int i,j,min,l1,l2;
    char temp[100];
    l1=strlen(s1);
    l2=strlen(s2);
    min=(l1>l2)?l2:l1;
    for(i=0;i    {
        temp[2*i]=s1[i];
        temp[2*i+1]=s2[i];
    }
    if(l1>min)
        for(j=min;j            temp[min+j]=s1[i];
    if(l2>min)
           for(j=min;j            temp[min+j]=s2[i];
    for(i=0;i        s1[i]=temp[i];
     s1[l1+l2]='';  
    return l1+l2;
}追问但l1>=l2时说明s2短,如果for( )里面用s2!='\0'进行判断,那temp根本取不到s1(长串)的后面几个字符啊追答if(s2[i]!='\0') 根本不成立。。。。再想想追问嗯谢谢啦,我找到问题了,这样改就对了
if(s2[i]!='\0'&&i<=l2)
下面那个if也这样加个范围就好了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用手握啤酒瓶,越握越紧,则摩擦力会越大么
羊绒和羊毛有什么区别
卓今教育和一度教育学东西哪个好
去过休闲会所的朋友给说说 进去怎么消费 想按
目前中国哪些大学的MBA比较好
一份稿件,李师博计划做20分钟完成,实际做了8
伏魔者好玩么?为什么好多人在玩?
13年10月底的速腾是不是那批容易断后桥
如果今年没有参加高考无高考成绩,可是想去冀
75306819乘54950236我用竖式计算等于37270168
邻居把防火门都拆除了,怎么投诉
W&QWeddingQueen高端彩妆婚纱造型馆地址
奉新美容地址在哪,我要去那里办事,
关于MIUI5 现在支持什么机型了
请问看电阻色环时,如何分辨它的正反面?
推荐资讯
电动车电瓶上的额定容量是一块的容量还是四块
宋国有田夫
Intel 赛扬 G1610为什么比Intel 赛扬 G1620贵
高楼的自来水水箱在法律上规定是几个月清洗一
注册itunes美服出现we couldnt verify your a
英国国际马展发生停车场火灾意外的情况如何?
家里介绍的女生,叫我老铁什么意思!还有机会
star farming是什么意思
2016年吴世勋还在上高中吗?
共华发是什么意思
化妆品进价几折
㏒十的0.2次方等于多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?