Java 在数组中间位置插入int
任务是创建一个20元素的Java 在数组中间位置插入int,java,arrays,int,Java,Arrays,Int,任务是创建一个20元素的int数组,并用从索引0到索引18的随机整数填充它。然后我想在中间插入1,并打印整个数组。不过,我的代码有问题 import java.util.Random; public class Zadanie5_3{ public static void main(String[] args){ Random rand = new Random(); int[] tab = new int[20]; for(int
int
数组,并用从索引0到索引18的随机整数填充它。然后我想在中间插入1,并打印整个数组。不过,我的代码有问题
import java.util.Random;
public class Zadanie5_3{
public static void main(String[] args){
Random rand = new Random();
int[] tab = new int[20];
for(int i = 0; i <= 18; i++){
tab[i] = rand.nextInt();
}
for(int j = 19; j > tab.length/2; j--){
tab[j] = tab[j--];
tab[tab.length/2] = -1;
System.out.println(tab[j]);
}
}
}
import java.util.Random;
公共类Zadanie5_3{
公共静态void main(字符串[]args){
Random rand=新的Random();
int[]tab=新int[20];
对于(int i=0;i tab.length/2;j--){
tab[j]=tab[j--];
页签【页签长度/2】=-1;
系统输出打印项次(表[j]);
}
}
}
问题在第二个for循环中
tab[j]=tab[j--]代码>
j--
会将j的值减少1。因此,在每次迭代中,j将减少2,而不是1
tab[j]=tab[j-1]
是正确的解决方案。导入java.util.Random;
import java.util.Random;
public class Zadanie5_3 {
public static void main(String[] args){
Random rand = new Random();
int[] tab = new int[20];
for(int i = 0; i <= 18; i++){
tab[i] = rand.nextInt();
}
for(int j = 19; j >= 9; j--){
tab[j] = tab[j-1];
}
tab[9] = -1;
// print
for(int i = 0; i <= 18; i++){
System.out.println(tab[i]);
}
}
}
result:
1956305001
-2096126360
98350219
1446603176
1822536231
-585584710
1907161554
-1249344271
330285354
-1
-2035667564
935350135
178577755
1025860367
-965180067
1164224066
1726709678
1615705033
-1258924041
公共类Zadanie5_3{
公共静态void main(字符串[]args){
Random rand=新的Random();
int[]tab=新int[20];
对于(int i=0;i=9;j--){
tab[j]=tab[j-1];
}
表[9]=-1;
//印刷品
对于(int i=0;i您应该将第二个for循环分成两个循环。第一个循环将数组的上半部分上移一个索引。第二个循环输出完整的数组
在第一个循环中,放置语句:
tab[j] = tab[j--];
tab[j] = tab[j - 1];
但是,您必须调整此语句,因为j--
实际上减少了j
。请用此语句替换它:
tab[j] = tab[j--];
tab[j] = tab[j - 1];
在这两个循环之间,你将“代码> -1”/代码>分配给中间的索引。这个操作不属于一个循环,因为它只需要执行一次。而且,它只应该在其他元素的移位完成之后执行,否则你就重写当前在中间的元素。在中间元素中插入-1时,是否要将数组向右移动?