gpt4 book ai didi

java - 从用户输入读取堆栈的整数

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

我正在尝试创建一个程序,该程序从扫描仪获取用户输入并将其插入堆栈,然后弹出每个元素并将其打印出来。这是迄今为止我的代码:

import java.util.*;

public class NumberReverse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Enter numbers: ");
int number = sc.nextInt();

Stack<Integer> stack = new Stack<Integer>();
stack.push(number);

while (!(stack.isEmpty())) {
System.out.println(stack.pop());
}
}
}

最佳答案

尝试更多类似的东西...

在您一次只读取一个数字之前,这似乎您希望用于数组的大小。此后,您不断地将相同的数字压入堆栈,因为您从不提示用户输入任何其他数字。

下面的代码比您的代码更进一步,一旦您从用户那里了解了数字并设置了数组大小,您就会一遍又一遍地请求一个新数字来填充您的数组,直到您的数组被填满。这可以通过提示用户在 for 循环中一遍又一遍地输入值来完成。

我不太确定为什么你需要一个数组来完成你想做的事情,但考虑删除数组并仅使用输入的第一个数字作为 for 循环的边界而不是数组大小。数组数据结构实际上只是浪费空间,因为您唯一使用它的时候就是使用它的长度作为 for 循环中的停止点

public class NumberReverse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);


System.out.print("Enter stack size: ");

int number = sc.nextInt();
int[] array = new int[number];

Stack<Integer> stack = new Stack<Integer>();
for(int i = 0; i < array.length; i++){
System.out.println("Enter your number: ");
int value = sc.nextInt();
stack.push(value);
}

while (!(stack.isEmpty())) {
System.out.println(stack.pop());


}
}
}

根据下面的评论,考虑尝试类似下面的代码。您只打印出一个数字,原因与我上面列出的相同......

import java.util.*; 
public class NumberReverse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter how many numbers you want to place on the Stack: ");
int stackSize = sc.nextInt();
Stack<Integer> stack = new Stack<Integer>();
for(int i = 0; i < stackSize; i++){
System.out.println("Enter numbers: ");
int number = sc.nextInt();
stack.push(number);
}
while (!(stack.isEmpty())) {
System.out.println(stack.pop());
}
}
}

关于java - 从用户输入读取堆栈的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278160/

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