从键盘输入一个字符a和b,试编程实现在字符串a中的最大元素后边插入字符串b

#include"stdio.h"#include"string.h"voidmain(){chara[128];charb[128];inti,j=0,m=0,inde... # include "stdio.h"
# include "string.h"
void main()
{
char a[128];
char b[128];
int i,j=0,m=0,index,n,k;
gets(a);
gets(b);
index=0;
k=strlen(a);
n=strlen(b);

for(i=0;a[i]!='\0';i++)
{
if(a[i]<a[i+1])
index=i+1;
else
index=i;
}

for(j=k;j>=index+1;j--)
{
a[j+n]=a[j];

}
for(i=index+1;i<=index+1+n;i++)
{
a[i]=b[m];
m++;
}
puts(a);

}

哪错了,为什么编出来的效果是b连在a后面。
展开
 我来答
chun280444332
2012-12-11 · TA获得超过123个赞
知道答主
回答量:257
采纳率:0%
帮助的人:115万
展开全部
方法1:
1 #include <stdio.h>
2 #include <string.h>
3 int main(void)
4 {
5 char a[128],b[128],temp[128];
6 int i,j,g,m=0,index,n,k;
7 printf("get string a:\n");
8 gets(a);
9 printf("get string b:\n");
10 gets(b);
11 index=0;
12 k=strlen(a);
13 n=strlen(b);
14 for(i=1;a[i]!='\0';i++)
15 {
16 if(a[index]<a[i])
17 index=i;
18 else
19 continue;
20 }
21 strcpy(temp,a);
22 for(i=0;i<=index;i++)
23 temp[i]=a[i];
24 for(j=0;j<n+1;j++)
25 temp[j+i]=b[j];
26 i=index+n+1;
27 for(j=index+1;a[j]!='\0';j++)
28 {
29 temp[i]=a[j],i++;
30 }
31 temp[i]='\0';
32 printf("the result is:\n");
33 puts(temp);
34 }
方法2:
1 #include <stdio.h>
2 #include <string.h>
3 int main(void)
4 {
5 char a[128],b[128],temp[128];
6 int i,j,g,m=0,index,n,k;
7 printf("get string a:\n");
8 gets(a);
9 printf("get string b:\n");
10 gets(b);
11 index=0;
12 k=strlen(a);
13 n=strlen(b);
14 for(i=1;a[i]!='\0';i++)
15 {
16 if(a[index]<a[i])
17 index=i;
18 else
19 continue;
20 }
21 strcpy(temp,a);
22 strcpy(&temp[index+1],b);
23 strcpy(&temp[index+n+1],&a[index+1]);
24 if(strlen(temp)<=126)
25 strcpy(a,temp);
26 else
27 strcpy(a,temp);
28 a[127]='\0';
29 printf("the result is:\n");
30 puts(a);
31 }
魔囡4583246
2012-12-08 · 超过25用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:60.3万
展开全部
后面的我没看,你这个循环体
for(i=0;a[i]!='\0';i++)
{
if(a[i]<a[i+1])
index=i+1;
else
index=i;
}

自己琢磨一下,为什么要else呢?
hehzea
比如上面这个字符串,我测到a的时候,不是a最大就是e最大?不是吧

所以,index刚开始让他为0。后面的字符如果比index指向的字符大,就改变index,不用else
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式