Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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_Swap - Fatal编程技术网

Java阵列交换

Java阵列交换,java,arrays,swap,Java,Arrays,Swap,在我的第二个数组中,我试图交换数组号,但我不知道如何做 例如,在我的第一个数组中,数字如下所示: 1.5 2.5 3.5 ....19.5 20.5 1.5 20.5 2.5 19.5 3.5 .... 因此,在下一个数组中,需要如下所示: 1.5 2.5 3.5 ....19.5 20.5 1.5 20.5 2.5 19.5 3.5 .... 我让它看起来像这样: 20.5 19.5 ......3.5 2.5 1.5 这是我的代码: public static void main(

在我的第二个数组中,我试图交换数组号,但我不知道如何做

例如,在我的第一个数组中,数字如下所示:

1.5 2.5 3.5 ....19.5 20.5
1.5 20.5 2.5 19.5 3.5 ....
因此,在下一个数组中,需要如下所示:

1.5 2.5 3.5 ....19.5 20.5
1.5 20.5 2.5 19.5 3.5 ....
我让它看起来像这样:

20.5 19.5 ......3.5 2.5 1.5
这是我的代码:

public static void main(String[] args) {

    double A[] = new double[20];
    int  i ;
    double K, C;

    BufferedReader br = new BufferedReader(
        new InputStreamReader(System.in));

    System.out.print("K=");
    try {
        K = Double.parseDouble(br.readLine());
    }
    catch (Exception ex) {
        System.out.println("input-output error");
        return;
    }

    Random r = new Random();
    i=0;
    if (K<=0){
        do{
        A[i]= r.nextDouble()*20;
        i++;
        }while (i<20);

    }else{ 
        i=2;
        A[0]=K;
            A[1]=K+1;
            do {
                A[i]= A[i-1]+A[i-2];

            i++;


        }while (i<20);
    }

        System.out.println("A:");
        for (i=0; i<20; i++) {
            System.out.printf("%.2f\t", A[i]);
            if (i==9) System.out.println();
            if (i==19) System.out.println();
        }


        for (i=1; i<10; i++) {
            C = A[i-1];
            A[i] = A[19-i];
            A[19-i] = C;
        }

        System.out.println("\nB:");
        for (i=0; i<20; i++) {
            System.out.printf("%.2f\t", A[i]);
            if (i==9) System.out.println();
            if (i==19) System.out.println();
        }
    }

}
publicstaticvoidmain(字符串[]args){
双A[]=新双[20];
int i;
双K,C;
BufferedReader br=新的BufferedReader(
新的InputStreamReader(System.in));
系统输出打印(“K=”);
试一试{
K=Double.parseDouble(br.readLine());
}
捕获(例外情况除外){
System.out.println(“输入输出错误”);
返回;
}
随机r=新随机();
i=0;
如果(K你不是真正的“交换”,但是交换是你正在做的事情的一个组成部分

你需要两个“索引”,一个从前到后遍历数组,另一个从后到前遍历数组。当两个索引“在中间相遇”时,你就完成了

然后,您的算法如下所示:

  • 向后移动前索引(跳过前值)
  • 交换两个索引处的值
  • 将前索引向后移动(离开交换的值)
  • 将后索引向前移动。(去掉交换的值)
  • 向前移动后索引(跳过后值)
  • 重复,直到两个指数在中间相遇。


    不。你不会得到一个代码示例。这有点像家庭作业,但我希望这能有所帮助。

    你说的交换是什么意思?你的意思是反转数组吗?不,不是反转。但我需要更改数组,使数组看起来像这样:1.5 20.5 2.5 19.5 3.5…这只是反转@Krists登录输入
    1,2,3,4,5,6,7,8
    什么uld是输出?输出:1,8,2,7,3,6,4,5