Проблема: Напишите программу, которая читает список действительных чисел. По завершении программы он должен распечатывать только уникальные номера. То есть, только цифры, которые появляются один раз в списке. Если есть более чем 50 уникальных номеров в списке, то вы должны напечатать только первые 50.Java: Локальная переменная, возможно, не была инициализирована?
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. Буду признателен за любую оказанную помощь.
Ого .. новобранец ошибку. Я ценю это! – user102817
@ пользователь102817 приветствуется. Пожалуйста, не забудьте отметить сообщение, которое помогло вам больше всего в качестве ответа. –
По какой-то причине он ничего не распечатывает? Не могли бы вы помочь? Он печатает «уникальные номера», но это не уникальные номера? Не уверен, где его беспорядок – user102817