gpt4 book ai didi

java - 为了交换该数组中的数字,我缺少什么? java

转载 作者:行者123 更新时间:2023-12-01 21:17:19 25 4
gpt4 key购买 nike

因此,在我的作业中,我正在解决这个特定的 java 数组(这是一本在线书籍;测试阶段的百分比为 50%)。但是我不知道我错过了什么。对于此代码,我必须使输入反转两个数字(无论请求多少数量)。我尝试在网上寻找类似的情况,但没有人满足我的需求。

说明:编写一个方法 swapArrayEnds(),交换其数组参数的第一个和最后一个元素。例如:sortArray = {10, 20, 30, 40} 变为 {40, 20, 30, 10}。数组的大小可能与 4 不同。

import java.util.Scanner;

public class ModifyArray {
// ANYTHING ABOVE THIS COMMENT CANNOT BE MODIFIED
public static void swapArrayEnds(int[] sortArray, int numElem) {
numElem = 4;
int i = 0; // Loop index
int tmpStore = 0; // Temp variable for swapping

for (i = 0; i < numElem; ++i) {
tmpStore = sortArray[i]; // Do swap
sortArray[i] = sortArray[numElem - 1];
sortArray[numElem - 1] = tmpStore;
}

return;
}
// ANYTHING BELOW THIS COMMENT CANNOT BE MODIFIED
public static void main (String [] args) {
int numElem = 4;
int[] sortArray = new int[numElem];
int i = 0;

sortArray[0] = 10;
sortArray[1] = 20;
sortArray[2] = 30;
sortArray[3] = 40;

swapArrayEnds(sortArray, numElem);

for (i = 0; i < numElem; ++i) {
System.out.print(sortArray[i]);
System.out.print(" ");
}
System.out.println("");

return;
}
}

目前,我的错误代码是:

Testing with original sortArray = {10, 20, 30, 40}
Expected output: 40 20 30 10
Your output: 40 10 20 30
Tests aborted.

我不确定我的输入是如何变成这样的,但它只是将原始的最后一个数字放在原始的第一个数字前面。我怎样才能交换第一个和最后一个数字?

最佳答案

由于需要交换两端,并且此交换需要恰好发生一次(而不是重复),因此:

  // Why do you need yo swap it in a cycle, thus many times???
/* Commenting faulty code out
for (i = 0; i < numElem; ++i) {
tmpStore = sortArray[i]; // Do swap
sortArray[i] = sortArray[numElem - 1];
sortArray[numElem - 1] = tmpStore;
}
*/

// A single time should do
tmpStore = sortArray[0]; // Do swap with the starting end
sortArray[0] = sortArray[numElem - 1];
sortArray[numElem - 1] = tmpStore;
<小时/>

(注意:我想我已经厌倦了让初学者去做傻事的愚蠢评论/答案)

关于java - 为了交换该数组中的数字,我缺少什么? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39813158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com