如何反转数组输入
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 >= 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]);
【讨论】:
谢谢!从现在开始,我将避免使用大量数字以上是关于如何反转数组输入的主要内容,如果未能解决你的问题,请参考以下文章
整数反转(数学)乘积最大子数组(数组动态规划)全排列 II(数组回溯)