Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组变量输入帮助[关闭]_Java_Arrays_Replace_Extend - Fatal编程技术网

Java 数组变量输入帮助[关闭]

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

首先,我必须创建一个长度为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 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];
}