3条回答 默认 最新
- Winson.J 2021-09-26 17:25关注
看题意,length代表的是元素数量,一共5个,这5个元素的索引是0-4;数组的长度是超过元素数量的,否则最后一个元素移不到他后面的位置。
data[j+1]=data[j]意思是,把索引为 j 的元素移到索引 j+1的位置;
看题意应该是在索引 = 3的地方插入一个数75,那么55,和90就要向后移一位;for(int j = length - 1; j >= i; j--)//这个循环就是移位置的 data[j+1]=data[j]; //这里要注意,循环体就这一行,所以没有大括号,
第一次循环 j 的初始值为5-1=4,就是原素90的位置,data[j+1] =data[j];就是把data[4]的元素放到data[5]的位置,就是data[4]向后移了一位
第二次循环 j = 4-- 所以j = 3 data[j+1] =data[j];就是把data[3]的元素放到data[4]的位置(此时原data[4]已经到data[5]了,所以不用担心覆盖)就是data[3]向后移了一位
此时j = 2,不符循环条件,循环结束.
data[i] = a意思是把新原素放到 data[3]的位置;
新增了一个原素,所以length多了一个;这是length++的意思,
最后一行return true;表示插入成功。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 set_link_state
- ¥15 虚幻5 UE美术毛发渲染
- ¥15 CVRP 图论 物流运输优化
- ¥15 Tableau online 嵌入ppt失败
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度