如何反转数组输入

Posted

技术标签:

【中文标题】如何反转数组输入【英文标题】: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

【问题讨论】:

【参考方案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]);

【讨论】:

谢谢!从现在开始,我将避免使用大量数字

以上是关于如何反转数组输入的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中反转字符数组? [关闭]

有没有办法将用户输入存储在数组中并反转它? [复制]

已排序数组的一部分被反转

整数反转(数学)乘积最大子数组(数组动态规划)全排列 II(数组回溯)

反转链表(递归链表)爬楼梯(记忆化搜索数学)旋转数组(数组数学)

LeetCode 344. 反转字符串