Java 数组变量输入帮助[关闭]
首先,我必须创建一个长度为n的数组,输入变量以填充该数组,然后在数组位置k,我必须将所有数组位置k向上推1,并将x的值放入数组位置k。但是如果k=n,那么把x放在n+1中 首先,我在使k和x的整数工作时遇到了一个问题。出于某种原因,代码将n设置为第一个输入,并在设置n时立即将k和x设置为与n相同 其次,我无法将数组扩展到n+1。我知道,不要只是给我答案,我需要一些方向去哪里Java 数组变量输入帮助[关闭],java,arrays,replace,extend,Java,Arrays,Replace,Extend,首先,我必须创建一个长度为n的数组,输入变量以填充该数组,然后在数组位置k,我必须将所有数组位置k向上推1,并将x的值放入数组位置k。但是如果k=n,那么把x放在n+1中 首先,我在使k和x的整数工作时遇到了一个问题。出于某种原因,代码将n设置为第一个输入,并在设置n时立即将k和x设置为与n相同 其次,我无法将数组扩展到n+1。我知道,不要只是给我答案,我需要一些方向去哪里 import java.util.Scanner; public class hw2 { public static
import java.util.Scanner;
public class hw2
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
int x = scan.nextInt();
int[] a = new int[n];
for(int i = 0; i<n; i++)
{
a[i] = scan.nextInt();
}
n++;
final int LENGTH = a.length - 1;
for(int j=LENGTH; j>k; j--)
{
a[j] = a[j-1];
}
a[k] = x;
for(int h = 0; h < n; h++)
{
System.out.println("location " + h + " is " + a[h]);
}
}
}
分别
在使用该输入运行代码后,n应=6,数组应为
a[0] = 2
a[1] = 3
a[2] = 5
a[3] = 7
a[4] = 11
a[5] = 13
编辑:我把这个问题看错了。底部的提示是“假设数组的大小至少为n+1”
…您可以使用ArrayList看起来一切都很好,包括这个:
import java.util.Scanner;
public class hw2
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int k = scan.nextInt();
int x = scan.nextInt();
int[] a = new int[n];
for(int i = 0; i<n; i++)
{
a[i] = scan.nextInt();
}
import java.util.Scanner;
公共级hw2
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
int n=scan.nextInt();
int k=scan.nextInt();
int x=scan.nextInt();
int[]a=新的int[n];
对于(int i=0;i很难知道你在问什么,因为你的代码与你写的不一致。据我所知,n元素数组已经满了容量。在这种情况下,你不能只在最后附加一个元素,你需要创建一个新数组,并将旧数组中的所有数据复制到新数组中
它的工作原理如下:
int[] oldArr = new int[n]; //old array, full
int[] newArr = new int[2*n];//new array
for(i=0;i<n;i++){
new[i] = old[i];
}
int[]oldArr=new int[n];//旧数组,已满
int[]newArr=newint[2*n];//新数组
对于(i=0;iIs)此作业?(如果是,请使用适当的标记。)问题描述没有根据您的示例输出捕获完整的要求。数组是否应该排序?重复项是否已删除?@Greenmart我被告知不鼓励使用家庭作业标记以及所有其他元标记。@Greenmart不要使用家庭作业标记。@John是这样的correct@Woot4Moo@John:为什么不使用作业标签?(-1)但这不是他所要求的。从他的代码来看,数组似乎已经被填充,他正在插入一个完整的数组。我的意思是将数组向上移动1,将值放入数组位置k的x中,这样就不会覆盖任何值,只需向上移动1,将x放入位置kWell,然后您的选择是使用另一个数组移动对象或使数组大小>=N+1。我无法复制数组。它必须是相同的数组名称。
int[] oldArr = new int[n]; //old array, full
int[] newArr = new int[2*n];//new array
for(i=0;i<n;i++){
new[i] = old[i];
}