永发信息网

for(i=strlen(a)+2;i>j+2;i--) 重点解析这个语句

答案:2  悬赏:20  手机版
解决时间 2021-04-12 20:54

#include <stdio.h>
#include<string.h>

main()
{
char a[80],b[]="ab",sum;

int i,j;

printf("please enter char a[80]:\n");

gets(a);

puts(a);

i=1; j=0; sum=a[0];

while(a[i]!='\0')
{
if(a[i]>sum)
{
sum=a[i];

j=i;

}
i++;
}
for(i=strlen(a)+2;i>j+2;i--)
a[i]=a[i-2];

a[i-1]=b[0];

a[i]=b[1];
puts(a);
getch();
}

这个程序得作用是,从键盘输入一个字符串a,试编程:在a串中的最大元素后边插入字符串b(b[]="ab")

重点解析一下这个语句for(i=strlen(a)+2;i>j+2;i--)

最佳答案
for(i=strlen(a)+2;i>j+2;i--) //strlen(a)代表字符串a的长度,i=strlen(a)+2代表插入字符串b之后的长度,从总长度i开始循环(i--),使a[i]=a[i-2],字符串中的字符向后移动两位,直到i=j+2,循环结束;等待插入字符
a[i]=a[i-2];//循环体

a[i-1]=b[0];//把b字符串的第一个字符赋给a[i-1](位置是j+1处)


a[i]=b[1];//把b字符串的第二个字符赋给a[i](位置再j+2处)
puts(a);
getch();
}

全部回答

逻辑很清楚,先找到最大字母的位置,然后通过

for(i=strlen(a)+2;i>j+2;i--)

a[i]=a[i-2];

将插入位置后的元素往后移动两位,

最后将b中的元素赋到最大字母的后面

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
真的狠气人,是领导就可以打人,就可以欺负人
谁有幽雅旋律推荐下谢谢
求魔域降魔礼包激活码
如意是什么意思
神鬼传奇 变异猪技能
早上去拆牙线需要吃早餐去吗
这首诗就是
贷款额度和收入水平是个怎样的关系
一棵紫荆花树要多少钱
古人云:“吾日三省吾身”的修身方法。这种认
宏盛装饰地址有知道的么?有点事想过去
收据哪一联给客户,一式三份的收款收据,那三
我在厦门,为什么QQ上显示的是南平啊?
哪里可以订制表白沙画
解答题神经调节的基本方式是____,在神经系统
推荐资讯
我的IE被修改成了969dh.cn 。怎改回来??
单选题下列物质或结构中一定不含胸腺嘧啶“T
我以朋友的名义购买他单位的房子,房产权归单
谁会使用CAD制图软件
想买个2~4万左右的手表最好是星空系列的
梦见自己坐车不知道在哪下车,连亲人都快认不
戴尔7559右边的SSD插孔可以直接插固态硬盘吗
日语亚麻的是什么意思,请问下日语亚麻得是什
气嘘和血虚怎么办?
单选题一辆汽车匀速通过一座圆形拱桥后,接着
在一条直线上有A、B、C三点,如下图.图中有_
被称为“雾都之国”的是哪个国家
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?