![](/img/trans.png)
[英]Write a program that takes as input an array of positive and negative numbers (0 excluded)
[英]How to create a program that allows user to decide the number of Scanner input and then divides Scanners into arrays of positive and negative numbers?
package nizovi;
import java.util.Scanner;
public class Nizovi {
private static String array;
public static void main(String[] args) {
Scanner sc= new Scanner (System.in);
int k = sc.nextInt();
int[] pos =new int[k];
int[] neg = new int [k];
Scanner n= new Scanner (System.in);
System.out.println("Enter the number of members of array:");
int members = n.nextInt();
for (int i=k;i>0;){
Scanner numb= new Scanner (System.in);
System.out.println("Enter number:");
int num=numb.nextInt();
if (broj >=0){
pos[num]=n.nextInt();
}
else{
neg[num]=n.nextInt();
}
}
}
}
我正在使用 for 循环,我很困惑如何在其中添加更多数字,因为如果我将数组命令留在 for 循环中,它每次都会使用不同的扫描仪定义它。抱歉,解释不好。
第一:每个输入源使用一个Scanner
,所以这里只有一个而不是 3
然后,你需要一步一步来,你做了很多无用的事情
k
k
次值但是你的数组中会有零,因为你创建了 2 个大小为k
的 arrays 但只输入了k
个元素,所以你的 arrays 中总共有k
个零,使用List
来只拥有你需要的东西
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number of members of array:");
int k = scanner.nextInt();
int[] pos = new int[k];
int[] neg = new int[k];
for (int i = 0; i < k; i++) {
System.out.println("Enter a number:");
int numberUser = scanner.nextInt();
if (numberUser > 0) {
pos[i] = numberUser;
} else {
neg[i] = numberUser;
}
}
System.out.println(Arrays.toString(pos));
System.out.println(Arrays.toString(neg));
Scanner numb=新的Scanner (System.in);
那种说法……根本没用。
您已经定义了一次有效的扫描仪,更进一步,命名为n
。
你只应该:
scannerForUserInput
而不是n
。根本不需要为每个新的输入数据定义一个新的扫描仪。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.