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

标签 java arrays

因此,在我的作业中,我正在解决这个特定的 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/

相关文章:

java - 聚合根中的重复值应该在领域层还是应用层进行检查?

java - System.out.println 输出到 JTextArea

java - 获取 Class<Array> 的代号

Java 压缩文件/字节数组问题

java - 参差不齐和参差不齐的阵列

Java 2D 游戏无明显原因变慢

java - 如何从另一种方法停止/中断正在运行的线程?

python - 如何用零替换数组中的所有负数

c - 如何使用 C 中的结构和选择排序按字符串对文件进行排序

c - CodeChef 上 "Discrepancies in voter list"(VOTERS) 的错误答案