求解释下在指定位置插入数据的思路是啥(很详细的那种)

求解释下在指定位置插入数据的思路是啥(很详细的那种)

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

        同学你好,这里老师写了一个例子的详细步骤,同学可以参考一下

public class Test01 {
	public static void main(String[] args) {
		//定义数组a
		int[] a={23,45,36,48,67,87,0};
		//要求在下标为1的位置插入91这个数据
		//对应的操作就是将下标1,2,3,4,5的数据整体向后移动
		a[6]=a[5];     //将下标为5的元素赋值给下标为6的元素
		a[5]=a[4];	//将下标为4的元素赋值给下标为5的元素
		a[4]=a[3];	//将下标为3的元素赋值给下标为4的元素
		a[3]=a[2];	//将下标为2的元素赋值给下标为3的元素
		a[2]=a[1];	//将下标为1的元素赋值给下标为2的元素		
		a[1]=90;  //移动完成后 赋值
		//对应写在for循环中,数组长度为7
		//条件1,定义循环条件i的初始值-->最大的下标为数组a的长度-1-->6 就是最大的下标
		//对应循环条件的初始值为a.length-1
		//条件2,定义循环的范围-->执行循环的条件是移动至指定的下标之前的以为
		//如上所示,将数据赋值到2就可以了-->对应i的范围大于指定的下标就可以了
		//最后一个条件,从最大的下标a.length-1开始,直到指定的下标(这里是1)之前一次递减
		//最后一个条件就是 -->i--;
		
		//这里传入的指定下标是1,在作业中指定下标是传入的k--> 对应就是-->  i>k
		for(int i=a.length-1;i>1;i--){  //for(int i=6;i>1;i--)   -->a.length-1在这里就等于6
			a[i]=a[i-1];  //对应上面的条件-->a[6]=a[5]; a[5]=a[4];
		}
		a[1]=90; //循环完成后,将指定的元素赋值给指定的下标
		//对应在代码中-->  k是指定的下标  n是传入的数值 -->a[k]=n;
		
	}
}

        如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • SomnusL 提问者 #1
    谢谢 我自己看吧
    2019-07-18 12:07:38
好帮手慕小班 2019-07-17 17:23:17

        同学你好,这里的思路可以参考如下:

在这个方法中,定义一个for循环,循环变量i初始值为a.length-1(数组的最后一个下标),判断条件是i>=k; i的值是递减的(下标递减),循环体中的内容就是把前一个元素的值赋值给后一个元素,即a[i]=a[i-1];这样就达到了移位的效果,将传入的k之后的数据都向后移动一位!

        最后在循环外面将n赋值给a[k]

        如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 SomnusL #1
    可是就是不明白这个for循环定义的时候我要定义i是干嘛的 控制什么变量?没这个思路不明白自己为什么要定义i 不知道循环条件写什么。像打印图形也是这样 没思路
    2019-07-17 17:34:40
  • 好帮手慕小班 回复 提问者 SomnusL #2
    同学你好,这里可以这样理解,1、首先在指定位置插入数据,就是要先将接收的指定下标的数组元素先整体后移一位; 2、比如 int a=[23,24,56,0]; 这是数组a,现在指定在下标为1的地方插入一个数据88,那就需要先将原来下标为1的元素先向后依次移动一位,a[3]=a[2]; a[2]=a[1];移动完成后,将指定下标插入指定的数值 a[1]=88; 3、这里将a[2]赋值给a[3],a[1]赋值给a[2],就是在如上的for循环中完成,for循环中的初始值是数组的最后一个下标,下标之间递减,将指定下标之后的数据都一一向后移动一位-->a[i]=a[i-1]; -->对应就是上面的例子 a[3]=a[2] / a[2]=a[1]!循环赋值完成后,将指定位置插入指定数值! a[1]=88; 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-07-17 18:43:10
  • 提问者 SomnusL 回复 好帮手慕小班 #3
    谢谢 这个思路我是明白的。但我就是不知道如何定义for循环的循环条件 感觉没头绪。我看是能看明白 但是要我写我不知道去写什么循环条件
    2019-07-18 09:10:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师