【发布时间】:2014-02-04 17:49:49
【问题描述】:
问题:编写一个读取实数列表的程序。程序结束后,它应该只打印出唯一的数字。也就是说,只有在列表中出现一次的数字。如果列表中的唯一编号超过 50 个,那么您应该只打印前 50 个。
import java.util.*;
import java.io.*;
import java.util.Arrays;
public class Hmwk {
public static void main(String[] args) throws FileNotFoundException {
Scanner input=new Scanner (new File ("input.txt"));
int n = 0;
final int MAX_SIZE = 50;
double[] numbersArray;
while (input.hasNextDouble() && n<MAX_SIZE){
double in = input.nextDouble();
if (inList(in,numbersArray))
numbersArray[n]=in;
n++;
}
printReport(numbersArray);
}
public static boolean inList(double number, double[] list){
for (double i : list) {
if (i == number){
return false;
}
else
return true;
}
}
public static void printReport(double[] list) {
System.out.printf("The unique numbers were", Arrays.toString(list));
}
}
我收到错误消息,提示 numbersArray 可能尚未初始化。我也收到一个错误,说我的布尔方法 inList 必须返回一个布尔类型,这让我感到困惑,因为我有两个选项可以返回 true 或 false。非常感谢任何帮助。
【问题讨论】:
标签: java arrays methods while-loop boolean