【问题标题】:How to reverse array input如何反转数组输入
【发布时间】:2021-12-04 15:32:00
【问题描述】:

我在编写代码时遇到了麻烦,因为我从头开始学习,我不知道如何从数组中打印出反向输入。 这是我目前所拥有的:

import java.util.Scanner;
public class ReverseList {
    
public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    int[] array = new int[10];
    int num = 0;
    int count = 0;
    int total = 1;
    
        loop: 
        for (count = 0; count <= 10; count++) {
            System.out.print("Enter a number (999 to quit): ");
            num = scan.nextInt();
            
            
            if (num == 999) {
                break loop;

            }
              if (count == 9) {
                break loop;

            }
            
            array[count] = num;
            total = count+1;
        }
    System.out.print("\n The list reversed is:" );

//List Reversed

}
}

应用程序的输出应该类似于:

Enter a number (999 to quit): 19 <enter>
Enter a number (999 to quit): 44 <enter>
Enter a number (999 to quit): 25 <enter>
Enter a number (999 to quit): 16 <enter>
Enter a number (999 to quit): 999 <enter>
The list reversed is:  16 25 44 19

【问题讨论】:

    标签: java reverse


    【解决方案1】:

    连同其他关于反转数组的简单方法的答案, 我可以建议以下方法来反转数组:

    使用交换技术

    在此方法中,我们将数组的第一个元素与数组的最后一个元素交换,将第二个第一个与倒数第二个交换,将第三个第一个与倒数第三个交换,依此类推。这将重复,直到所有元素都被交换。原始数组被反转数组替换。

    下面给出reverse函数的实现:

    static void reverse(int array[], int sizeOfArray) {
        int i, k, t;
    
        for (i = 0; i < sizeOfArray / 2; i++) {
            t = array[i];
            array[i] = array[n - i - 1];
            array[n - i - 1] = t;
        }
    

    【讨论】:

      【解决方案2】:

      做一些循环,但用i--反转。

      小解释:

      int i 的值为 9,i &gt;= 0 对数组索引 0 执行此循环,i-- 将在每次执行迭代时减小该值。

      for (int i = array.length-1; i >= 0; i--){
          System.out.print(array[i]+" ");
      }
      

      【讨论】:

        【解决方案3】:

        您当前的代码有一些错误。首先,total 应该加一(不是count)。您不应该在循环中嵌入对 count 的测试。你不应该依赖这么多不同的幻数。最后,要打印反转的数组内容,从元素总数开始倒数。喜欢,

        Scanner scan = new Scanner(System.in);
        
        int[] array = new int[10];
        int total = 0;
        
        for (int count = 0; count < array.length; count++) {
            System.out.print("Enter a number (999 to quit): ");
            int num = scan.nextInt();
        
            if (num == 999) {
                break;
            }
            array[count] = num;
            total++;
        }
        System.out.println("The list reversed is:");
        for (int count = total - 1; count >= 0; count--) {
            System.out.println(array[count]);
        }
        

        【讨论】:

        • 谢谢!从现在开始,我将避免使用大量数字
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-11
        • 1970-01-01
        • 2017-02-14
        • 1970-01-01
        • 2011-11-10
        • 2020-02-23
        相关资源
        最近更新 更多