我应该声明一个15整数数组并返回包含原始数组正整数的第二个数组。我在从方法返回第二个数组时遇到了麻烦。
import java.util.Scanner;
public class array4
{
public static void main(String [] args)
{
int [] num = new int[15]; int [] positives = new int [15];
getInput(num);
positives = getPositives(num);
printResults(num, positives);
}
public static void getInput(int [] num){
int x;
Scanner kbd = new Scanner(System.in);
System.out.println("Enter 15 integers");
for(x = 0; x < 15; x++)
num[x] = kbd.nextInt();
}
public static int getPositives(int [] num){
int position = 0;
int [] positive = new int [15];
for(int i =0; i < num.length; i++){
if(num[i] >=0) {
positive[position] = num[i];
position++; }}
return positive;
}
public static void printResults(int [] num, int [] positives){
System.out.println("You entered"); int x;
for(x = 0; x < num.length; x++)
System.out.println(num[x]);
System.out.println("Your positive integers are ");
for(x = 0; x < positives.length; x++)
System.out.println(positives[x]);}}
答案 0 :(得分:1)
是public static int[] getPositive()
。返回类型是一个整数数组,但您将其声明为int
。
答案 1 :(得分:1)
在getPositive
中,您将返回int
而不是int[]
我认为你的方法存在缺陷。
如果您创建ArrayList
并将正数放入其中,然后将该列表转换为数组,则阵列中不会有任何空位。
答案 2 :(得分:1)
您需要声明getPositive以返回数组:
public static int[] getPositive(int [] num){
此外,您无需在positive
方法中初始化main()
。那只是分配一个将被丢弃的数组。
答案 3 :(得分:0)
您的方法必须返回整数数组而不是单个整数值。这是修改过的一段代码:
public static int[] getPositive(int [] num){
int position = 0;
int [] positive = new int [15];
for(int i =0; i < num.length; i++){
if(num[i] >=0) {
positive[position] = num[i];
position++; }}
return positive; // Wont give compilation error now
}